Android学习之Activity的生命周期学习
来源:互联网 发布:js替换某个字符串 编辑:程序博客网 时间:2024/05/22 06:06
Activity是Android应用的最重要的四大组件之一,其他三个分别是Service、BroadcastReseiver和ContentProvider,而Activity是Android应用最常见的组件。
在学习Activity的时候,首先我们来看一下Activity的生命周期,只有熟练的掌握的Activity的生命周期,才能在相应的生命周期中来完成我们相应的工作。
Activity的生命周期
当Activity处于Android应用中运行时,他的活动状态有Android以Activity栈的形式管理,当前活动的Activity的位于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也有可能从非活动状态转入活动状态。
Activity的生命周期如下图所示:
从上图我们可以看到:在Activity的生命周期中,如下方法会被系统调用:
1、onCreate(Bundle saveStatus)创建Activity的时候被回调。该方法只会被调用一次。
2、onStart():启用Activity时候被调用该方法。
3、onRestart():重新启用Activity的被启动时调用该方法。
4、onResnme():恢复Activity时候调用,在onStart()方法之后一定会调用onResume()方法。
5、onPause():方法:暂停Activity时候调用;
6、onStop()方法:停止Activity时候被调用;
7、onDestroy():销毁Activity时候调用,该方法只会被调用一次。
下面我们贴一段源码:来看一下Activity的各个生命周期的执行情况:
publicclass ActivityDemoextends Activity {
privatestaticfinal StringTAG = ActivityDemo.class.getSimpleName();
@Override
protectedvoid onCreate(BundlesavedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
Log.i(TAG,"onCreate-->Begin");
}
@Override
protectedvoid onStart() {
super.onStart();
Log.i(TAG,"onStart-->Begin");
}
@Override
protectedvoid onRestart() {
super.onRestart();
Log.i(TAG,"onRestart-->Begin");
}
@Override
protectedvoid onResume() {
super.onResume();
Log.i(TAG,"onResume-->Begin");
}
@Override
protectedvoid onPause() {
super.onPause();
Log.i(TAG,"onPause-->Begin");
}
@Override
protectedvoid onStop() {
super.onStop();
Log.i(TAG,"onStop-->Begin");
}
@Override
protectedvoid onDestroy() {
super.onDestroy();
Log.i(TAG,"onDestroy-->Begin");
}
}
第一次打开Android应用的时候:依次执行的生命周期的方法是:onCreate()--->onStart()èonResume()。
当我们点击返回键退出应用的时候:依次执行的生命周期方法是:onPause()-->onStop()-->onDestroy()。
还有一种比较常见的情况,就是我们点击Home键的时候,这时候应用依次执行的生命周期方法是:onPause()èonStop()。我们可以看到这个时候应用并没有执行onDestroy()方法。原因是这个时候应用并没有完全退出,而只是进入到后台运行。但是这时候Activity并不是稳定的,如果Android系统在内存不足的时候可能会进行内存清理,会使应用退出。
按下Home键,之后在进入应用的时候,这时候应用依次执行的生命周期方法:onRestart()--onStart()--onResume()。
还有一种最常见的情况,是从一个Activity跳转到另一个Activity。这个时候Activity的生命周期方法执行的过程和按下Home键的执行过程是一样。当你点击返回键再返回到上一个Activity的时候应用依次执行的生命周期方法:onRestart()--onStart()--onResume()。
上面我们说到,当Activity处于Android应用中运行时,他的活动状态有Android以Activity栈的形式管理,当前活动的Activity的位于栈顶。随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也有可能从非活动状态转入活动状态。
进入到下一个Activity时候,当前Activity被放到栈底,但是这个时候这个Activity并没有被销毁,还是有可能从非活动状态转入活动状态(同样要是被Android系统回收机制回收的话,也可能被销毁)。
好了,就说到这里,刚开始学习Android,希望能够认真学习,认真总结。
- Android学习之Activity的生命周期学习
- android学习之-activity的生命周期
- android学习之Activity的生命周期理解
- Android学习之管理Activity的生命周期
- android学习之Activity的生命周期
- Android学习之Activity的生命周期
- Android学习之Activity生命周期
- Android学习之路(六)之 Activity的生命周期
- android学习:activity生命周期
- android-activity生命周期学习
- Android学习之核心组件Activity的生命周期
- Android学习笔记之Activity的生命周期和启动模式
- android开发艺术探索学习 之 Activity的生命周期
- Android学习之 Activity 生命周期(LifeCycle)
- android学习笔记之Activity生命周期
- Android 四大组件学习之Activity生命周期
- android学习笔记之Activity生命周期详解
- Android学习之Activity生命周期文档翻译
- 4.scale()函数
- 日经社説 20150324 リー氏は何を世界に残したか
- Permission denied (publickey). 解决办法
- Flex之旅:第二部分:容器与布局(1)---容器的初始化顺序
- Java容器总结
- Android学习之Activity的生命周期学习
- linux执行scp命令出错
- Oracle 中的Userenv()
- 日经社説 20150324 知恵を絞れば再生エネはもっと伸ばせる
- 遍历Map的四种方法
- android post 请求 报出异常 java.net.UnknownHostException: www.****.com
- linux下 firefox安装flash插件/selenimu ide
- hadoop hbase hive 常见问题解决
- Android 自定义View (二) 进阶