《Activity生命周期.ppt》由会员分享,可在线阅读,更多相关《Activity生命周期.ppt(18页珍藏版)》请在三一办公上搜索。
1、第十章,Activity生命周期,预习检查,Activity有哪几种基本状态?Activity状态之间的转换时调用哪些函数?,掌握Activity的生命周期掌握Activity各个回调函数的调用时机,本章目标,Activity的生命周期,Activity是一个用户界面的概念。Activity通常表示应用程序的一个屏幕。Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期。,Activity有四种基本状态,Active:处于屏幕前景(当前task的栈顶Activity处于Active状态),同一时刻只能有一个Activ
2、ity处于Active状态;简单地说,就是Activity取得了焦点。Paused状态:处于背景画面状态,失去了焦点,但依然是活动状态;例如:被一个Dialog(部分)覆盖。Stopped:不可见,但依然保持所有的状态和内存信息;例如:正在编辑短消息的时候,有电话拨入,电话的接听界面覆盖了整个屏幕。Killed:Activity 被系统杀死回收或者没有被启动时处于 Killed状态。,Activity的状态转换,Activity的状态转换,在 类中,Android 定义了一系列与生命周期相关的方法,在我们自己的 Activity 中,只是根据需要复写需要的方法,Java 的多态性会保证我们自己
3、的方法被虚拟机调用void onCreate(Bundle savedInstanceState)void onStart()void onRestart()void onResume()void onPause()void onStop()void onDestroy(),演示示例1:Activity中各种状态的切换,onCreate()和onDestroy(),onCreate()方法是Activity开始时调用的方法,此方法在以下三种情况被调用当Activity首次启动时,将使用一个null参数调用onCreate()如果Activity已经运行,并在随后的某个时刻被结束,那么将使用来自
4、onSavedInstanceState()的Bundle作为参数调用onCreate()如果Activity已经运行,并且已将Activity设置为根据不同的手机状态(例如横向和纵向)提供不同的资源,那么将重新创建Activity并调用onCreate(),onCreate()和onDestroy(),onDestroy()方法是Activity关闭时调用的方法。一个Activity的整个生命周期是从第一次调用onCreate()方法和调用onDestroy()方法之间的这段时间,onStart()、onRestart()和onStop(),Activity在前台运行可能是因为他是首次启动,
5、也可能是因为在被隐藏之后被调回前台,这些情况下都会调用onStart()方法在停止后重新启动Activity时,将调用onRestart()方法要停止Activity时,将调用onStop()方法在一组onStart()和onStop()方法之间的时间,被称为可见生命周期,onResume()和onPause(),在Activity初始启动、从停止状态重新启动后,或者清除了一个弹出对话框之后,在Activity回到前台之前将调用onResume()方法。相仿,使用户远离Activity的任何操作(通常是激活另一个Activity)都将导致onPause()被调用。以Android手机为例,按下
6、Home键,会让手机回到主屏幕,这个时候现有的Activity就会调用onPause()。在一组onResume()和onPause()方法之间的时间,被称为前台生命周期。,Android的活动栈,Android 是通过一种 Activity 栈的方式来管理 Activity 的,一个 Activity 的实例的状态决定它在栈中的位置。处于前台的 Activity 总是在栈的顶端,当前台的 Activity 因为异常或其它原因被销毁时,处于栈第二层的 Activity 将被激活,上浮到栈顶。当新的 Activity 启动入栈时,原 Activity 会被压入到栈的第二层。一个 Activity
7、 在栈中的位置变化反映了它在不同状态间的转换。,Android的活动栈,除了最顶层即处在 Active 状态的 Activity 外,其它的 Activity 都有可能在系统内存不足时被回收,一个 Activity 的实例越是处在栈的底层,它被系统回收的可能性越大。系统负责管理栈中 Activity 的实例,它根据 Activity 所处的状态来改变其在栈中的位置。也就是说Android 程序的生命周期是由系统控制而非程序自身直接控制。,Android系统的资源回收,Android 程序的生命周期是由系统控制而非程序自身直接控制。Android 程序的进程是重要性层次被系统结束,一个进程的重要性是根据其中运行的部件和部件的状态决定的各种进程按照重要性从高到低排列如下:前台进程可见进程服务进程后台进程空进程,每次没座位了总是让我坐地板,小结1,Activity的生命周期Activity各个回调函数的调用时机,编程练习,创建一个Activity,要求在每次系统调用onResume()时都添加一个TextView作为标记,编程练习:进一步思考,如何让系统调用onResume(),完成代码的测试让手机横屏会让系统调用onCreate(),会发生界面被重置的现象,如何让程序在这种情况下仍能按照要求运行,总结,Activity的生命周期有哪些Activity各个回调函数的调用时机,