Activity生命周期由Android OS控制,
当某个Activity调用startActivity(myintent)时,OS会在所有安装的程序的intent filter中查找最匹配myintent的Activity,然后启动该Activity所在的进程,并把myintent传递给该Activity。此Activity进入启动进程
当Activity不在需要时,系统会根据内存状况和Activity的重要性,将LRU中重要性最低的Activity kill。
1. 前台进程。这样的进程拥有一个在屏幕上显示并和用户交互的 activity 或者它的一个IntentReciver 正在运行。这样的程序重要性最高,只有在系统内存非常低,万不得已时才会被结束。
2. 可见进程。在屏幕上显示,但是不在前台的程序。比如一个前台进程以对话框的形式显示在该进程前面。这样的进程也很重要,它们只有在系统没有足够内存运行所有前台进程时,才会被结束。
3. 服务进程。这样的进程在后台持续运行,比如后台音乐播放、后台数据上传下载等。这样的进程对用户来说一般很有用,所以只有当系统没有足够内存来维持所有的前台和可见进程时,才会被结束。
4. 后台进程。这样的程序拥有一个用户不可见的 activity。这样的程序在系统内存不足时,按照 LRU 的顺序被结束。
5. 空进程。这样的进程不包含任何活动的程序部件。系统可能随时关闭这类进程。
Activity生命周期分类:
1、完整生命周期:Activity 从第一次调用onCreate()开始到最终调用onDestroy()。
2、可见生命周期:Activity从调用onStart()开始到调用onStop()。
3、前台生命周期:Activity从调用onResume()开始到调用onPause()。
Activity的三种状态:
1、Active状态:Activity获取焦点可以与用户交互,同时只能有一个Activity处于Active状态。
2、Paused状态:Activity失去焦点但仍然可见。
3、Stop状态:Activity不可见,但依然保持所有的状态和内存信息。
Activity 生命周期函数:
1、onCreate()
当Activity创建时被调用。
该函数在Acitvity生命周期中只被调用一次。
拥有一个参数,或者为null,或者是通过函数onSaveInstanceState()预先保存的状态信息。
2、onStart()
在Activity即将显示给用户时被调用。
3、onResume()
当Activity可以与用户交互时被调用。
如果需要播放音乐或者动画,该函数最佳。
4、onPause()
当Activity将要进入后台时被调用。
通常是一个新的Activity启动并显示时,这时需要保存程序持久化数据,比如正在编辑的数据记录。
5、onStop()
当Activity不在可见并且在一段时间内不会需要时调用。
如果内存紧张,该函数可能永远不会调用,系统会直接结束掉进程。
6、onRestart()
当Activity由Stop状态重新转为可见状态时被调用。
6、onDestroy()
当Activity被销毁前被调用。
内存紧张时,该函数可能永远不会被调用,系统会直接结束掉进程。
不在前台运行的Activity可能处于Stop状态,也可能被管理activity的Linux进程直接kill掉以保证新的Activity的运行。
这是一种非常常见的处理,同时,对应用的运行也十分的重要。在某些情况下,onPause()函数将会是Activity最后调用到的函数。
所以必须在这里保存Activity下次运行的持久化数据。
参考文章:
http://www.cnblogs.com/feisky/archive/2010/01/01/1637427.html
2068

被折叠的 条评论
为什么被折叠?



