我注意到这个奇怪的事情。我有一系列由Activity托管的片段。当通过按下并再次打开来杀死活动时,所有碎片都会保留其数据和变量。我已经阅读了关于android开发人员的文章,其中写道,片段附加到托管活动,并在活动结束时被销毁。
我该如何处理?
答案 0 :(得分:0)
按下“返回按钮”时,Activity
不会消失。所以片段也不会死。将调用Activity中的onStop()
。如果系统缺乏资源,则可以随时销毁活动。详细了解activity lifecycle in Android
如果要杀死活动,请覆盖onBackPressed()
,如此
@Override
public void onBackPressed(){
finish();
}
这会杀死当前活动及其附加的所有碎片。
答案 1 :(得分:0)
您还可以通过覆盖Fragment的onStart()
和onStop()
方法来解决此问题。当片段所属的活动变得完全不可见时,onStop()
被调用,例如当进入后栈时。当片段所属的活动再次变得可见时,会调用onStart()
。
您可以在Fragment的onStart()
方法中重置Fragment的UI。