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