Activity生命周期

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值