这是我的savedInstaceState代码:
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
savedInstanceState.putStringArrayList("todo_arraylist", Altodo);
Log.v("bundle", "Saved");
super.onSaveInstanceState(savedInstanceState);
}
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if (savedInstanceState != null)
{
Altodo = savedInstanceState.getStringArrayList("todo_arraylist");
Log.v("bundle", "Restored");
}
else
{
Log.v("bundle", "null");
}
setContentView(R.layout.main);
}
日志总是显示"bundle save“标签。
但在onCreate
方法中,SavedInstanceState
始终为空。
发布于 2011-08-12 19:33:23
您是否检查了是否为该视图设置了Id (如果是/有...)。否则不会调用onSaveInstanceState()。
检查此link。
发布于 2012-02-12 01:59:58
以这种方式保存的状态不会持久化。如果整个应用程序像您在调试期间所做的那样被终止,那么在onCreate
中捆绑包将始终为空。
这篇IMO是另一个糟糕的Android文档的例子。这也是为什么市场上的大多数应用程序根本没有正确地实现保存状态的原因。
发布于 2015-05-15 22:07:37
在Manifest中,为活动添加此行
android:launchMode="singleTop"
例如:
<activity
android:name=".ActivityUniversity"
android:label="@string/university"
android:launchMode="singleTop"
android:parentActivityName="com.alkhorazmiy.dtm.ActivityChart">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.alkhorazmiy.dtm.ActivityChart" />
</activity>
https://stackoverflow.com/questions/6554317
复制相似问题