Bundle SavedInstanceState保存状态

本文介绍如何在Android应用中使用Bundle来保存和恢复应用的状态。具体包括定义Bundle的键值、在onSaveInstanceState中保存Activity状态以及在onCreate中恢复状态的方法。当Activity可能被销毁时,如按下Home键,可以通过这种方式保持用户体验的连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当按到home键,退出了程序界面,或者回收了应用的进程,这种情况下使用Bundle SavedInstanceState 就可以再次打开应用的时候恢复到原来的状态


//定义
 public static final String BUNDLE_KEY_IS_PLAY_BEEP = "mainActivityIsPlayBeep";
 private boolean mIsPlayBeep =false;

当Activity 变得容易被销毁时,Activity的onSaveInstanceState 就会被执行

除非是 用户自己按了back按键

保存的参数 putBoolean(key , value);

    @Override
    protected void onSaveInstanceState(Bundle outState)
    {
        outState.putBoolean(BUNDLE_KEY_IS_PLAY_BEEP, mIsPlayBeep);
        super.onSaveInstanceState(outState);
    }

onCreat 的时候 恢复状态

从savedInStanceState.getBoolean(key ,value)中取出销毁时候存储的数据

当savedInstanceState 为空时,通过getIntent.getBooleanExtra(key ,value) 设置初始的值

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

        mApplication = FG8KWApplication.getInstance();

        if (savedInstanceState != null) {
            mIsPlayBeep = savedInstanceState.getBoolean(BUNDLE_KEY_IS_PLAY_BEEP, false);
        }
        else {
            mIsPlayBeep = getIntent().getBooleanExtra(BUNDLE_KEY_IS_PLAY_BEEP, false);
        }
}


转自:http://blog.youkuaiyun.com/chuyouyinghe/article/details/46795091

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值