app结构
activity带有ViewPager
ViewPager上带有4个fragment
这是非常典型的结构
操作过程
点icon打开app
点击home键隐藏app
再次点击icon唤回app
点击home键隐藏app
开启多个其他app,要很耗费内存那种
点击home键隐藏这些app
再次点击icon唤回app
app虽然唤回,但是上面的fragment已经不听招呼,空白,无反应
仔细debug,发现按键能够操作fragment,并且fragment能否反馈,但屏幕上还是显示一个空白fragment以及一个初始状态的变量值
所谓初始状态的变量值,是指静态代码设置的值,比如如下的字符串:
public class FragmentListview extends Fragment {
String currentPath = "static_ini_code_null";
在静态代码之后的初始化过程中这个值应该被改变,但是却没有,可见这是一个仅仅静态代码初始化的fragment
困扰了很久。在activity和fragment的所有生命周期函数处添加了打印,终于发现端倪
以下是第一次唤回app的流程,打印了activity,以及0和1两个fragment
lifecycle: DirPlayerActivity.onRestart()
lifecycle: FragmentListview.onStart() 0:/mnt/sdcard FragmentListview{41c2c1a0 #0 id=0x7f0a0001 android:switcher:2131361793:0}
lifecycle: FragmentListview.onStart() 1:/mnt/sdcard FragmentListview{41c3f848 #1 id=0x7f0a0001 android:switcher:2131361793:1}
lifecycle: DirPlayerActivity.onStart()
lifecycle: MyArrayAdapter.MyArrayAdapter()
lifecycle: MyArrayAdapter.MyArrayAdapter()
lifecycle: FragmentListview.setListviewAdapter() 0:/mnt/sdcard FragmentListview{41c2c1a0 #0 id=0x7f0a0001 android:switcher:2131361793:0}
lifecycle: FragmentListview.setListviewAdapter() 0:/mnt/sdcard FragmentListview{41c2c1a0 #0 id=0x7f0a0001 android:switcher:2131361793:0}
lifecycle: DirPlayerActivity.updateFileInfor()! FragmentListview{41c2c1a0 #0 id=0x7f0a0001 android:switcher:2131361793:0} [Lcom.maxproj.android.dirplayer.MyArrayAdapter;@41c2c018
lifecycle: MyArrayAdapter.MyArrayAdapter()
lifecycle: FragmentListview.setListviewAdapter() 1:/mnt/sdcard FragmentListview{41c3f848 #1 id=0x7f0a0001 android:switcher:2131361793:1}
lifecycle: FragmentListview.setListviewAdapter() 1:/mnt/sdcard FragmentListview{41c3f848 #1 id=0x7f0a0001 android:switcher:2131361793:1}
lifecy