1

我的 Fragment 有时无法正确恢复。当应用程序不再处于后台缓存进程中然后重新打开时,就会发生这种情况。当它发生时,所有写入的onActivityCreated内容都不会发生,但是我System.out.println();的调用。所以我最终我的项目不再可点击。我应该如何解决这个问题?

    @Override
public void onActivityCreated(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onActivityCreated(savedInstanceState);
    System.out.println("onActivityCreated");

    relative1 = (RelativeLayout)getActivity().findViewById(R.id.r1);
    relative2 = (RelativeLayout)getActivity().findViewById(R.id.r2);
    relative3 = (RelativeLayout)getActivity().findViewById(R.id.r3);
    relative4 = (RelativeLayout)getActivity().findViewById(R.id.r4);

    relative1.setOnClickListener(this);
    relative2.setOnClickListener(this);
    relative3.setOnClickListener(this);
    relative4.setOnClickListener(this);

}
4

1 回答 1

0

当您将您的应用程序发送到后台然后再发送到前台时,如果存在内存问题或勾选了“不保留活动”,就会发生这种情况。您的活动和片段将再次创建。在您的情况下,如果您在后台长时间保留,它可能会被重新创建。发生这种情况时,Activity 将保留已打开片段的标志并再次打开它们。如果您不控制该片段,则该片段将在 Activity 的 onCreate 上打开,并且 Activity 将以其标志打开。如果您控制您的片段是否通过标志打开,您可以解决此问题。如果它已经创建,你不应该打开第二个......一个。

于 2013-09-25T20:31:25.107 回答