Android onSaveInstanceState期间创建的SavedInstantState未在onCreate中还原
我的应用程序是一个活动(现在它是FragmentActivity的一个子类,尽管我认为这并不重要),让我们称它为活动a 在它里面,一个按钮导航到(比如)活动B,方法是使用startActivity()通过Intent启动它,而不使用特殊标志 两个活动在清单中都没有任何特殊标志(SingleTop)等,也没有调用finish()等,即没有异常 调用了活动A的方法onSaveInstanceState()get,我保存了一些状态信息 在活动B中,我按下后退键,然后返回到活动A 调用了它的onCreate()方法,但“savedInstanceState”的Bundle为null,因此我无法重建以前保存的状态 任何关于我做错了什么的想法,以及我如何确保我能回到国家的想法Android onSaveInstanceState期间创建的SavedInstantState未在onCreate中还原,android,android-activity,Android,Android Activity,我的应用程序是一个活动(现在它是FragmentActivity的一个子类,尽管我认为这并不重要),让我们称它为活动a 在它里面,一个按钮导航到(比如)活动B,方法是使用startActivity()通过Intent启动它,而不使用特殊标志 两个活动在清单中都没有任何特殊标志(SingleTop)等,也没有调用finish()等,即没有异常 调用了活动A的方法onSaveInstanceState()get,我保存了一些状态信息 在活动B中,我按下后退键,然后返回到活动A 调用了它的onCrea
顺便说一句:在进行配置更改(比如旋转)时,一切正常。…当您只需按后退键返回活动a时,
onCreate()
就会被调用,这似乎很奇怪。一般来说,它应该只显示现有的活动,而不尝试重新创建它。我还认为,当您启动其他活动时,onSaveInstanceState()
被调用也很奇怪。事实上,文档中指出,在启动活动B时,它可能不会调用onSaveInstanceState()
:
例如:调用onPause()而不调用
onSaveInstanceState(Bundle)是当活动B在
活动A:系统可能会避免调用saveInstanceState(Bundle)
在活动A上,如果自
的用户界面状态将保持不变
从
我想还有别的事 当您只需按后退键返回活动A时,
onCreate()
就会被调用,这似乎很奇怪。一般来说,它应该只显示现有的活动,而不尝试重新创建它。我还认为,当您启动其他活动时,onSaveInstanceState()
被调用也很奇怪。事实上,文档中指出,在启动活动B时,它可能不会调用onSaveInstanceState()
:
例如:调用onPause()而不调用
onSaveInstanceState(Bundle)是当活动B在
活动A:系统可能会避免调用saveInstanceState(Bundle)
在活动A上,如果自
的用户界面状态将保持不变
从
我想还有别的事 活动A从未被销毁,因此不应调用onCreate()。你能写一些代码吗?活动A从未被销毁,因此不应该调用onCreate()。你能帮我写一些代码吗?启动活动B并返回到活动A只需要调用活动A的
onPause()
和onResume()
方法。你以前的状态不应该改变。。。除非操作系统在后台杀死A以回收内存,但这与方向更改没有区别。启动活动B并返回到活动A只应调用活动A的onPause()
和onResume()
方法。你以前的状态不应该改变。。。除非操作系统在后台杀死了一个来回收内存,但这和方向改变没什么区别。是的,我也不明白onCreate()再次被调用,你确认了……所以我调查了……结果,我不知道,活动B捕获了BACK键并启动了活动a的一个新实例(关于它为什么这样做的长篇大论…)。修复了,谢谢,我也无法理解onCreate()再次被调用,而您确认了它…所以我调查了一下…结果,在我不知道的情况下,活动B捕获了BACK键并启动了活动a的一个新实例(关于它为什么这样做的原因,说来话长…)。修好了,谢谢