安卓(android)生命周期的系统性总结以及实例演示
2015-10-01 10:26
561 查看
Activity是安卓中最最重要的一个基础组件,下面就对它的一些系统性的总结分享给各位开发人员,帮助大家更好的理解和使用。
1、Activity显示和销毁原则:
Activity的顺序是按照栈的先进后出原则进行的。当启动其他Activity时当前的这个Acitivity就会被停止,新的Activity将会压入栈中,同时获取用户焦点;当用户按返回键时,当前的这个Activity将会被销毁,前一个Activity重新恢复。
2、Activity的七个方法:
onCreate()
onStart()
onRestart()
onResume()
onPause()
onStop()
onDestroy()
3、Activity的三个阶段:
开启Activity阶段:依次执行onCreate()、onStart()、onResume()这三个方法
Activity重新获取焦点阶段:依次执行onRestart()、onStart()、onResume()这三个方法
关闭Activity阶段:依次执行onPause()、onStop()、onDestory()这三个方法
4、Activity整体生命周期:
onCreate()->onStart()->onRestart()->onResume()->onPause()->onStop()->onDestroy()
5、Activity的两个子生命周期:
焦点生命周期:onResume()->onPause()(焦点获取与失去的循环,但是Activity始终是可见的,焦点失去只是被覆盖)
可视生命周期:onStart()->onRestart()->onResume()->onPsuse()->onStop()(Activity可见与不可见的循环)
6、下面举一个在方法中输出日志的例子,来看一下Activity使用的过程中各个方法的调用情况。
运行添加下面代码的安卓工程,显示这个Activity的页面以后,翻看运行的app或服务,点击其中一个,会进入到其他页面,然后再按返回键回到咱们这个安卓工程页面,接着再按一次返回键,退出这个安卓工程。并在这个过程中实时查看日志的输出信息。以这样的方式来理解安卓生命周期中各个方法的调用情况。
MainActivity.java文件:
1、Activity显示和销毁原则:
Activity的顺序是按照栈的先进后出原则进行的。当启动其他Activity时当前的这个Acitivity就会被停止,新的Activity将会压入栈中,同时获取用户焦点;当用户按返回键时,当前的这个Activity将会被销毁,前一个Activity重新恢复。
2、Activity的七个方法:
onCreate()
onStart()
onRestart()
onResume()
onPause()
onStop()
onDestroy()
3、Activity的三个阶段:
开启Activity阶段:依次执行onCreate()、onStart()、onResume()这三个方法
Activity重新获取焦点阶段:依次执行onRestart()、onStart()、onResume()这三个方法
关闭Activity阶段:依次执行onPause()、onStop()、onDestory()这三个方法
4、Activity整体生命周期:
onCreate()->onStart()->onRestart()->onResume()->onPause()->onStop()->onDestroy()
5、Activity的两个子生命周期:
焦点生命周期:onResume()->onPause()(焦点获取与失去的循环,但是Activity始终是可见的,焦点失去只是被覆盖)
可视生命周期:onStart()->onRestart()->onResume()->onPsuse()->onStop()(Activity可见与不可见的循环)
6、下面举一个在方法中输出日志的例子,来看一下Activity使用的过程中各个方法的调用情况。
运行添加下面代码的安卓工程,显示这个Activity的页面以后,翻看运行的app或服务,点击其中一个,会进入到其他页面,然后再按返回键回到咱们这个安卓工程页面,接着再按一次返回键,退出这个安卓工程。并在这个过程中实时查看日志的输出信息。以这样的方式来理解安卓生命周期中各个方法的调用情况。
MainActivity.java文件:
private final String TAG="MainActivity"; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.i(TAG,"onCreate"); } protected void onStart() { // TODO Auto-generated method stub super.onStart(); Log.i(TAG,"onStart"); } protected void onRestart() { // TODO Auto-generated method stub super.onRestart(); Log.i(TAG,"onRestart"); } protected void onResume() { // TODO Auto-generated method stub super.onResume(); Log.i(TAG,"onResume"); } protected void onPause() { // TODO Auto-generated method stub super.onPause(); Log.i(TAG,"onPause"); } protected void onStop() { // TODO Auto-generated method stub super.onStop(); Log.i(TAG,"onStop"); } protected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); Log.i(TAG,"onDestroy"); }
相关文章推荐
- Android Api Demos登顶之路(八十四)Graphics-->PolyToPoly
- 关于重构的一些思想
- Android Api Demos登顶之路(八十三)Graphics-->Point
- Android工具类之Bitmap图片处理
- 一起学习android图像缩放资源 (27)
- Android Api Demos登顶之路(八十二)Graphics-->Picture
- Android项目使用support v7时遇到的各种问题GOOD
- android中的内存问题(一)
- android SFC
- Android新组件RecyclerView介绍,其效率更好
- Android进阶之设置透明、半透明等效果
- Android Studio下调试Libgdx桌面项目的正确设置
- Android命令行启动程序正确使用技巧解析
- Ant编译android程序
- Android Studio插件
- android前端开发 布局学习
- Android学习笔记(九)一个例子弄清Service与Activity通信
- Android中获取屏幕宽高
- android中actionbar的showAsAction属性设置为always无效解决方案
- Android中Loader及LoaderManager的使用(附源码下载)