android片段无法正常恢复

时间:2013-09-25 20:12:22

标签: android fragment restore

My 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);

}

1 个答案:

答案 0 :(得分:0)

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