我找到了很多这个问题的答案,但似乎都没有。这是Activity
:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putString(CUR_TASK, curTask);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
如你所见,super.onSaveInstanceState(savedInstanceState)
就在最后,所以它应该有效。我的布局确实有id
,所以也应该没问题:
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer_layout"
仍然,当我致电startActivity
转到另一个Activity
并返回(使用ActionBar
)时,savedInstanceState
中的onCreate
捆绑为空
答案 0 :(得分:1)
来自activity lifecycle的文档:
注意:因为无法保证调用onSaveInstanceState(),所以您应该仅使用它来记录活动的瞬态(UI的状态) - 您永远不应该使用它来存储持久数据。相反,当用户离开活动时,您应该使用onPause()来存储持久数据(例如应该保存到数据库的数据)。
方法onSaveInstanceState
不用于您的目的,它用于屏幕旋转以保存UI状态。
当第一个Activity
启动第二个并使用onActivityResult()
再次传回值时,您必须切换逻辑,通过意图传递值。
此外,我建议您恢复不在onCreate()
但在onRestoreInstanceState(Bundle savedInstanceState)
中的状态,在该状态下,您始终确定savedInstanceState
Bundle
不是python python_code.py && echo "script exited successfully" || echo "there was an error."
空。
答案 1 :(得分:0)
如果onCreate中的实例状态在后台应用程序时不为null并且返回我的猜测,那么当您从后台堆栈返回活动时,它将被重新创建。
将您的活动启动模式设置为singleTop,以实现正义 link