您的位置:首页 > 移动开发 > Android开发

Android Activity生命周期【图文】

2015-02-13 14:24 204 查看
1.整个周期的流程:



1. onCreate( ) :当你第一次创建该activity时调用。你可以在这里设置静态代码,创建View,

绑定数据到列表。

1.1 onRestart ( ): 在你的activity处于onStop状态后调用

1.2onStart ( ):在这个activity正在变成可视化时

1.2.1 onResume ( ):这个activity的界面与用户交流时(焦点位置)

1.2.2 onPause ( ):这个界面处于次级视角,不是焦点位置,仍然可见

1.3onStop( ):处于不可见状态。

2. onDestroy(): 你调用了finish()方法销毁了该activity,或者其他程序需要内存时,它被系统

自动销毁了,你可以用isFinishing( )方法区分这两种情况。

2.Actvity 堆栈

每个Actvity的状态由它所在Activity栈中的位置所决定,所有当前正在运行的Actvity将遵循照后进先出的原则。



3.Activity状态

随着Activity的创建和销毁,也就会进出栈如上图所示,其中可能会经历以下四种状态:

Active状态:在最当前的位置,有焦点,系统会牺牲所有的资源包括其他Activity(非active的)来保证它的运行。

Paused状态:并不是完全不见,只是一个小部分出现在前面上。

Stopped 状态:完全不可见,完全给遮蔽了当Activity处于Stopped状态时,一定要保存当前数据和当前的UI状态,

否则一 旦Activity退出或关闭时,当前的数据 和UI状态就丢失了。

Inactive状态:Activity被杀掉以后或者被启动以前,处于Inactive状态。这时Activity已被移除从Activity堆栈中,需要重新启动才可以显示和使用。

4.Task

它是一个存放多个的Activity的栈。

特点一:

它是以栈(stack)方式存放多个Activity。



特点二:

多任务功能(MultiTask ):

当用户按下Home按钮返回到最上面时,android可以将之前启动的多个Task

同时放在后台,所有的Activity保持stopped状态。除非内存不够用时,才会

销毁部分的Activity 。

特点三:



如何保护好你的Activity的状态(因为有可能,处于内存需要,系统将你的Activity销毁了)

以防这种情况,你应该在onSaveInstanceState() 里保存好该Activity的信息。

Activity被销毁后,系统还是会记住它曾经在这个Task里的位置。

更多的Managing Tasks,可以去看docs,例如:如何让Activity启动另一个Task,而不是取代原有的Task ;

如何让Activity重新打开一个存在Task底层下的某个Activity,而不是重新创建Activity;如何让Activity

销毁一个Task下的所有Activity,除了最底层的Activity。

这些操作都可以通过Activity的属性(attribute),和Intent的flag去实现。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: