首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >savedInstanceState始终为空

savedInstanceState始终为空
EN

Stack Overflow用户
提问于 2011-07-02 08:17:13
回答 10查看 61.6K关注 0票数 77

这是我的savedInstaceState代码:

代码语言:javascript
复制
@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始终为空。

EN

回答 10

Stack Overflow用户

发布于 2011-08-12 19:33:23

您是否检查了是否为该视图设置了Id (如果是/有...)。否则不会调用onSaveInstanceState()。

检查此link

票数 14
EN

Stack Overflow用户

发布于 2012-02-12 01:59:58

以这种方式保存的状态不会持久化。如果整个应用程序像您在调试期间所做的那样被终止,那么在onCreate中捆绑包将始终为空。

这篇IMO是另一个糟糕的Android文档的例子。这也是为什么市场上的大多数应用程序根本没有正确地实现保存状态的原因。

票数 13
EN

Stack Overflow用户

发布于 2015-05-15 22:07:37

在Manifest中,为活动添加此行

代码语言:javascript
复制
android:launchMode="singleTop"

例如:

代码语言:javascript
复制
<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>
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6554317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档