首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onSaveInstanceState和onRestoreInstanceState

onSaveInstanceState和onRestoreInstanceState
EN

Stack Overflow用户
提问于 2015-07-01 07:55:30
回答 2查看 1.3K关注 0票数 0

我不明白为什么当我点击主页按钮和恢复应用程序时,onSaveInstanceState和onRestoreInstanceState不能输出我的Logcat消息。

代码语言:javascript
复制
public class MainActivity extends ActionBarActivity {

    int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();
        count++;
    }

    @Override
    public void onSaveInstanceState(Bundle outState, PersistableBundle outPersistentState) {
        super.onSaveInstanceState(outState, outPersistentState);
        Log.d("TAG", count + " was restored");

    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
        count = savedInstanceState.getInt("count");
        Log.d("TAG", count + " was restored");
    }
}
EN

回答 2

Stack Overflow用户

发布于 2015-07-01 08:56:59

在活动的生命周期中的特定时间调用onSaveInstanceState()onRestoreInstanceState()

正如您所看到的,为了调用onSaveInstanceState(),activity需要被操作系统销毁。按下Home按钮将只调用onPause()方法。

要调试onSaveInstanceState()方法,请在安卓设备上进入Settings -> Developer options,然后在Apps部分,选中Kill app back button旁边的复选框。现在,长按后退按钮应该会关闭可见的应用程序,并以敬酒的方式通知你。再次打开应用程序将调用onRestoreInstanceState()

如果设备上没有此选项,或者您正在使用仿真器,请按照此处有关如何立即销毁活动以测试onSaveInstanceState()onRestoreInstanceState()的说明进行操作:http://developer.android.com/tools/debugging/debugging-devtools.html

票数 2
EN

Stack Overflow用户

发布于 2015-07-01 07:59:27

点击主页按钮还不足以杀死这款应用。这只会暂停它。onSave/onRestore仅在框架要终止活动并稍后恢复它时调用。只是最小化并不能做到这一点。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31150461

复制
相关文章

相似问题

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