android中activity的生命周期
2014-04-16 16:12
351 查看
一:Activity生命周期图
二:运行中的应用程序分为五大类
前景模式: foreground process -是当前显示于手机屏幕上的应用程序画面,被定义为前景模式的进程,其中由onCreate()、onStart() 、onResume() 函数调用的Activity都会变成foreground process正在运行的Activity。
可见模式: visible process - 最常发生的情况是当应用程序弹出对话框要与用户交互时,原应用程序就会变成透明(不可见)的,而对话窗口就会变成前景。当对话窗口退出后,原应用程序马上就又变回原前景模式了。在Activity窗口画面变为透明时,就会由onPause()函数掌控进入暂停状态。当前景进程退出时,该Activity就会再度被拉到前景模式,由onResume()
函数唤醒。
背景模式: background process -
是在Activity窗口画面被其他Activity完全盖掉,窗口画面已经完全看不见时,则会进入onStop()停止状态。
这种情况通常发生在两个不同的应用程序开启时,后开启的应用程序会覆盖掉原应用程序。
此时对background process Activity的处理有两种选择:一是直接被onDestroy()退出,该程序将完全关闭,无法再使用任何返回键回到该程序;另一个处理方式是当其他Activity需要内存时,这个background process会先被清除掉,释放出内存。
如果使用者再度浏览刚刚被清除掉的background process,则Android系统会自动再运行onCreate()重新启动该Activity,所以当系统需要内存时,就会暂时将背景进程清除,让它变成empty process(空白模式) , 所以空白进程最重要的目的就是暂时释放出内存,直到使用者再度唤醒该empty
process Activity时,才会将空白进程变成前景进程。
空白模式: empty process -
服务模式: service process -
是由startService()所产生的,虽然服务进程有点类似背景进程在背景状态运行,但是它的运行等级和前景进程几乎一样高。
服务模式进程是持续运行的,虽然使用者看不到任何运行画面,Android系统不会自动关闭此类的服务进程,除非使用者自行关闭。这部分内容可在Service详解里面再讨论。
除了最后一个是service的事情。其余都与Activity相关
Android的整个生命周期是从第一次调用OnCreate(Bundle)到最后调用OnDestroy()。一个Activity在OnCreate()中建立所有的状态,在OnDestroy()中释放其所有的状态。
例如:一个运行在后台的进程去下载数据,那么它将在OnCreate()中被建立,从OnDestroy()中被销毁。
一个Activity可以从视觉上被看到发生在OnStart()和OnStop()之间,即使它并不是在Activity栈的栈顶,并且用户可能仅是只能看到他。
foreground lifetime是从OnResume()到OnPause()之间。此时该Activity位于栈顶。
Activity的所有的生命周期在如下的函数里定义:
public class Activity extends ApplicationContext{
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onREsume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
二:运行中的应用程序分为五大类
前景模式: foreground process -是当前显示于手机屏幕上的应用程序画面,被定义为前景模式的进程,其中由onCreate()、onStart() 、onResume() 函数调用的Activity都会变成foreground process正在运行的Activity。
可见模式: visible process - 最常发生的情况是当应用程序弹出对话框要与用户交互时,原应用程序就会变成透明(不可见)的,而对话窗口就会变成前景。当对话窗口退出后,原应用程序马上就又变回原前景模式了。在Activity窗口画面变为透明时,就会由onPause()函数掌控进入暂停状态。当前景进程退出时,该Activity就会再度被拉到前景模式,由onResume()
函数唤醒。
背景模式: background process -
是在Activity窗口画面被其他Activity完全盖掉,窗口画面已经完全看不见时,则会进入onStop()停止状态。
这种情况通常发生在两个不同的应用程序开启时,后开启的应用程序会覆盖掉原应用程序。
此时对background process Activity的处理有两种选择:一是直接被onDestroy()退出,该程序将完全关闭,无法再使用任何返回键回到该程序;另一个处理方式是当其他Activity需要内存时,这个background process会先被清除掉,释放出内存。
如果使用者再度浏览刚刚被清除掉的background process,则Android系统会自动再运行onCreate()重新启动该Activity,所以当系统需要内存时,就会暂时将背景进程清除,让它变成empty process(空白模式) , 所以空白进程最重要的目的就是暂时释放出内存,直到使用者再度唤醒该empty
process Activity时,才会将空白进程变成前景进程。
空白模式: empty process -
服务模式: service process -
是由startService()所产生的,虽然服务进程有点类似背景进程在背景状态运行,但是它的运行等级和前景进程几乎一样高。
服务模式进程是持续运行的,虽然使用者看不到任何运行画面,Android系统不会自动关闭此类的服务进程,除非使用者自行关闭。这部分内容可在Service详解里面再讨论。
除了最后一个是service的事情。其余都与Activity相关
Android的整个生命周期是从第一次调用OnCreate(Bundle)到最后调用OnDestroy()。一个Activity在OnCreate()中建立所有的状态,在OnDestroy()中释放其所有的状态。
例如:一个运行在后台的进程去下载数据,那么它将在OnCreate()中被建立,从OnDestroy()中被销毁。
一个Activity可以从视觉上被看到发生在OnStart()和OnStop()之间,即使它并不是在Activity栈的栈顶,并且用户可能仅是只能看到他。
foreground lifetime是从OnResume()到OnPause()之间。此时该Activity位于栈顶。
Activity的所有的生命周期在如下的函数里定义:
public class Activity extends ApplicationContext{
protected void onCreate(Bundle savedInstanceState);
protected void onStart();
protected void onRestart();
protected void onREsume();
protected void onPause();
protected void onStop();
protected void onDestroy();
}
相关文章推荐
- [android] Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化
- [Android知识体系]之四大组件:activity(生命周期管理)
- Android编程中activity的完整生命周期实例详解
- Android 横屏切换竖屏Activity的生命周期
- Android四大组件之Activity篇(二)(Activity的生命周期)
- Android Activity 生命周期的透彻理解
- android 中在activity弹出一个对话框,并不会执行onpause生命周期
- android基础篇(一)Activity的生命周期
- android-----横竖屏切换对Activity生命周期的影响
- 体验android Activity的完整生命周期
- 【Android开发学习笔记】【高级】【随笔】插件化——Activity生命周期
- [Android新手学习笔记06]-活动Activity生命周期
- Android生命周期之Activity
- Android Activity之间跳转 生命周期变化详解
- 【Android 个人理解(九)】Activity的生命周期方法的深入理解
- Android开发之横竖屏切换对Activity生命周期的影响
- android轻量框架二__Activity生命周期
- Android 面试之横竖屏切换的Activity生命周期
- Android Activity的生命周期
- Android 开发学习笔记(四)—— Activity的生命周期