安卓核心组件(一)Activity
- 简介:activity 意思是活动,集成了一系列的view形成可视界面
- 四种状态
- Runing状态:位于前台,可以和用户交互,在内存中此时位于栈顶
- paused状态:可见,但是没有焦点,不可以与用户交互
- stopped状态:不可见,但是依然存在于内存中
- killed状态:已经不存在内存中
- 主要方法
- oncreat
- onstart
- onrestar
- onpaused
- onresume
- onstop
- ondestroy
- 所有方法从字面意思就很好理解,但是注意这个方法onresume,这个方法将一个调用过onstart或者onrestart的activity调整到能与用户交互的状态;onRestart在onstop后面执行
- 生命周期
- 当Activity被激活时:onCreate() -> onStart() -> onResume()
- 当Activity被遮挡时:onPause() -> 显示其它界面 -> onStop()
- 当被遮挡的Activity恢复显示时:onRestart() -> onStart() -> onResume()
- 当Activity退出时:onPause() -> onStop() -> onDestroy();
- 四种启动模式
- a) Standard:默认配置,允许多个实例,允许叠加;
- b) Singletop:多个实例,不允许叠加;
- c) Singletask:一个实例,task中位于其上的全部destroy
- d) Singleinstance:完全单例模式,内存中仅存在一个实例
- 生命周期的测试可以通过重写activity的方法输出相应的日志来观察
`public class MainActivity extends Activity {
private String tag = "cn.myapp.activity_life";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 输出日志,日志级别Verbose Debug Info Warn Error
Log.i(tag, "MainActivity.onCreate()");
}
@Override
protected void onStart() {
super.onStart();
Log.i(tag, "MainActivity.onStart()");
}
@Override
protected void onRestart() {
super.onRestart();
Log.i(tag, "MainActivity.onRestart()");
}
@Override
protected void onResume() {
super.onResume();
Log.i(tag, "MainActivity.onResume()");
}
@Override
protected void onPause() {
super.onPause();
Log.i(tag, "MainActivity.onPause()");
}
@Override
protected void onStop() {
super.onStop();
Log.i(tag, "MainActivity.onStop()");
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.i(tag, "MainActivity.onDestroy()");
}
}`
相应输出结果省略