简单来讲就是用来和用户交互的界面,由各个控件组成 ,将内容界面化展示于用户面前,接收用户的触摸事件和用户进行交互,能够说是使用最频繁的组件了。java
生命周期: onCreate -> onStart -> onResume ->onPause -> onStop-> onDestroy 以及 onRestart 方法android
一个Activity从建立到销毁的生命周期流程以下:数据结构
开启一个界面app
2019-01-26 15:36:04.134 30064-30064/com.sjc.myapplication I/生命周期-----MainActivity: onCreate:
2019-01-26 15:36:04.207 30064-30064/com.sjc.myapplication I/生命周期-----MainActivity: onStart:
2019-01-26 15:36:04.221 30064-30064/com.sjc.myapplication I/生命周期-----MainActivity: onResume:
复制代码
按下返回键ide
2019-01-26 15:36:12.381 30064-30064/com.sjc.myapplication I/生命周期-----MainActivity: onPause:
2019-01-26 15:36:12.943 30064-30064/com.sjc.myapplication I/生命周期-----MainActivity: onStop:
2019-01-26 15:36:12.944 30064-30064/com.sjc.myapplication I/生命周期-----MainActivity: onDestroy:
复制代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
initView();
initData();
initAction();
}
private void initView(){};
private void initData(){};
private void initAction(){};
复制代码
2019-02-18 23:08:28.362 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onCreate:
2019-02-18 23:08:28.388 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onStart:
2019-02-18 23:08:28.390 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onResume:
复制代码
2019-02-18 23:08:33.347 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onPause:
2019-02-18 23:08:33.371 4980-4980/com.sjc.myapplication I/生命周期-----ActivityB: onCreate:
2019-02-18 23:08:33.393 4980-4980/com.sjc.myapplication I/生命周期-----ActivityB: onStart:
2019-02-18 23:08:33.395 4980-4980/com.sjc.myapplication I/生命周期-----ActivityB: onResume:
2019-02-18 23:08:33.819 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onStop:
复制代码
2019-02-18 23:10:59.457 4980-4980/com.sjc.myapplication I/生命周期-----ActivityB: onPause:
2019-02-18 23:10:59.482 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onRestart:
2019-02-18 23:10:59.482 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onStart:
2019-02-18 23:10:59.483 4980-4980/com.sjc.myapplication I/生命周期-----ActivityA: onResume:
2019-02-18 23:10:59.813 4980-4980/com.sjc.myapplication I/生命周期-----ActivityB: onStop:
2019-02-18 23:10:59.814 4980-4980/com.sjc.myapplication I/生命周期-----ActivityB: onDestroy:
复制代码
Activity 异常销毁的时候,会调用 ==onSaveInstanceState== 方法保存数据,该方法是在 onStop 以前执行,咱们可使用 Bundle 来储存数据,当 Activity 重建的时候会调用 ==onRestoreInstanceState== 方法,咱们能够经过 onRestoreInstanceState(Bundle savedInstanceState)传递过来的Bundle来获取以前储存的数据。进行数据恢复。固然也能够在onCreate(Bundle savedInstanceState)方法里面取出来。动画
另:onSaveInstanceState 和 onRestoreInstanceState 方法中,系统自动为咱们作了一些操做: 例如:Edittext 自动还原填写内容, ListView 还原滚动位置,由于每个View都有本身的 onSaveInstanceState 和 onRestoreInstanceState 方法。spa
activity异常销毁的场景:操作系统
经过在 mainfest 里面的 android:launchMode= ""属性来设置
复制代码
关于 taskAffinity 属性(能够指定Activity所在的任务栈),在 launchMode 为 standard 和 singleTop 的时候是没有做用的。具体做用体如今 singleTask 属性上。 具体详情连接 完全弄懂Activity四大启动模式.net