我有2个活动A(包含一个重定向到A和文本输入的按钮)和B(包含重定向到A的按钮)和我试图从一个切换到另一个但也保持来自A。
的文本值我试图使用onSaveInstanceState(...)将文本值保存在Bundle中,但它根本不起作用。
以下是我要做的步骤:
令我惊讶的是,当我在A中并更改方向时,值存储(并且发送到onCreate(...)的Bundle不为空)
我错过了什么吗?
答案 0 :(得分:1)
简而言之,没有。
onSaveInstanceState
用于在以下内容中保存实例状态:
可以进一步阅读here。
您应该将要保留的值存储在SharedPreferences
中,例如在onPause
来电期间。
答案 1 :(得分:0)
不能在活动之间切换时使用onSaveInstanceState()
。
onSaveInstanceState()
被调用以在被杀死之前从活动中检索每个实例状态,以便可以在onCreate(Bundle)或onRestoreInstanceState(Bundle)中恢复状态(由此方法填充的Bundle将被传递给两者)。
在活动可能被杀死之前调用此方法,以便在将来某个时间返回时可以恢复其状态。例如,如果活动B在活动A前面启动,并且在某些时候活动A被杀死以回收资源,活动A将有机会通过此方法保存其用户界面的当前状态,以便在用户返回时对于活动A,可以通过onCreate(Bundle)或onRestoreInstanceState(Bundle)恢复用户界面的状态。
您可以在Android Developer页面上获得更多想法:
http://developer.android.com/training/basics/activity-lifecycle/recreating.html