Activity的生命周期以及 退出时Bundle的数据保存

本文深入解析了Android Activity的生命周期,包括onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy()等关键方法的执行顺序及作用,并详细阐述了如何在不同生命周期阶段保存和恢复数据。

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

创建Activity 时,运行onCreat();


开始运行Activity 时,运行onStart();


该Activity处于最顶栈(即正在运行) 时,运行onResume();


启动另一个Activity 但 没有完全遮挡住原先这个Activity(例如启动一个dialog Activity)或者结束这个Activity 时,运行onPause();


启动另一个Activity而且完全覆盖原先这个Activity 或者 结束这个Activity 时,运行onStop();


Activity被销毁 时,运行onDestroy();


Activity从onStop()状态返回到界面时,运行onRestart();

如果该Activity已经被系统回收,则重新运作onCreat();


被系统回收时,Activity会先运行onSaveInstanceState(Bundle outState);

Bundle类型的参数是为了保存Activity被销毁前的参数,通常用方法outState.putString(key,String);其中key用字符串表示就可以了。
@Override
public void onSaveInstanceState(Bundle outStatePersistableBundle outPersistentState) {
    super.onSaveInstanceState(outStateoutPersistentState);
    String tempData = "Something you just typed";
    outState.putString("data_key",tempData);
}

而且要在创建Activity时的onCreat()里添加:
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(savedInstanceState !=null){
        String tempData = savedInstanceState.getString("data_key");
    }

}

当然bundle也可以与intent结合一起传递数据,就是把数据保存到Bundle对象中,再将Bundle对象保存到Intent对象中,再到其他的Activity时,取出Intent中的Bundle,再取出数据即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值