【安卓学习】Activity生命周期

Android是用栈管理的,每启动一个新的活动,就会覆盖在原活动之上

系统总会显示处于栈顶的活动给用户

活动状态

运行:正在使用的状态

暂停:仍然存活,但不可见

停止:不再使用,系统暂时保存状态

销毁:活动从栈中移除,彻底消除

七个状态变化时的回调方法

  • onCreate		//Create vt. 创造,创作;造成
    在活动第一次创建时调用,可以实现活动的初始化,加载布局绑定事件
    
  • onStart         //Start vt.  开始
    在活动由不可见变为可见时调用
    
  • onResume		//Resume vt. (中断后)重新开始,继续;重新回到,恢复,重新占用
    活动准备好交互时调用,此时活动位于栈顶,处于运行状态
    
  • onPause			//Pause	vi. 暂停,停顿,中止;踌躇
    当此活动要暂停,启动新页面时调用,可以在此方法中保留一些重要信息
    
  • onStop
    活动完全不可见时调用
    
  • onDestroy		//Destroy  vt. 破坏;消灭;毁坏
    活动摧毁前调用
    
  • onRestart		//重启
    
    activity_lifecycle

onSaveInstanceState

@Override
public void onSaveInstanceState(@NonNull Bundle outState, @NonNull PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
}

这个方法在活动回收之前调用,用于保存临时数据到 outState这个Bundle中(见上面代码参数)

@Override
public void onSaveInstanceState(@NonNull Bundle outState, @NonNull PersistableBundle outPersistentState) {
    super.onSaveInstanceState(outState, outPersistentState);
    String a="aaaa";
    outState.putString("a",a);
}

在onCreate方法中

protected void onCreate(Bundle savedInstanceState) 

可以通过savedInstanceState得到保留的数据

活动的启动模式

  • standard 默认启动模式,每启动一个活动就会往栈里添加一个活动
  • singleTop 当活动位于栈顶即不会再产生实例,不往栈中添加
  • singleTask 会检查栈中是否存在如果存在,把其上所有活动清栈
  • singleInstance 启动一个新的返回栈
<activity android:name=".SecondActivity"
    android:launchMode="singleTop"></activity>

launch 启动 mode 方式

只需在manifest中activity处添加即可使用

发布了136 篇原创文章 · 获赞 18 · 访问量 4172

猜你喜欢

转载自blog.csdn.net/xcdq_aaa/article/details/105168221