Android是用栈管理的,每启动一个新的活动,就会覆盖在原活动之上
系统总会显示处于栈顶的活动给用户
活动状态
运行:正在使用的状态
暂停:仍然存活,但不可见
停止:不再使用,系统暂时保存状态
销毁:活动从栈中移除,彻底消除
七个状态变化时的回调方法
-
onCreate //Create vt. 创造,创作;造成 在活动第一次创建时调用,可以实现活动的初始化,加载布局绑定事件
-
onStart //Start vt. 开始 在活动由不可见变为可见时调用
-
onResume //Resume vt. (中断后)重新开始,继续;重新回到,恢复,重新占用 活动准备好交互时调用,此时活动位于栈顶,处于运行状态
-
onPause //Pause vi. 暂停,停顿,中止;踌躇 当此活动要暂停,启动新页面时调用,可以在此方法中保留一些重要信息
-
onStop 活动完全不可见时调用
-
onDestroy //Destroy vt. 破坏;消灭;毁坏 活动摧毁前调用
-
onRestart //重启
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处添加即可使用