欢迎来到天天文库
浏览记录
ID:36608134
大小:1.12 MB
页数:18页
时间:2019-05-09
《《Activity生命周期》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第十章Activity生命周期预习检查Activity有哪几种基本状态?Activity状态之间的转换时调用哪些函数?掌握Activity的生命周期掌握Activity各个回调函数的调用时机本章目标Activity的生命周期Activity是一个用户界面的概念。Activity通常表示应用程序的一个屏幕。Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期。Activity有四种基本状态Active:处于屏幕前景(当前task的栈顶Activity处于Active状态)
2、,同一时刻只能有一个Activity处于Active状态;简单地说,就是Activity取得了焦点。Paused状态:处于背景画面状态,失去了焦点,但依然是活动状态;例如:被一个Dialog(部分)覆盖。Stopped:不可见,但依然保持所有的状态和内存信息;例如:正在编辑短消息的时候,有电话拨入,电话的接听界面覆盖了整个屏幕。Killed:Activity被系统杀死回收或者没有被启动时处于Killed状态。Activity的状态转换Activity被部分遮盖,进入Paused状态Activity被完全遮盖,进入Stopped状态Activity
3、的状态转换在android.app.Activity类中,Android定义了一系列与生命周期相关的方法,在我们自己的Activity中,只是根据需要复写需要的方法,Java的多态性会保证我们自己的方法被虚拟机调用voidonCreate(BundlesavedInstanceState)voidonStart()voidonRestart()voidonResume()voidonPause()voidonStop()voidonDestroy()演示示例1:Activity中各种状态的切换onCreate()和onDestroy(
4、)onCreate()方法是Activity开始时调用的方法,此方法在以下三种情况被调用当Activity首次启动时,将使用一个null参数调用onCreate()如果Activity已经运行,并在随后的某个时刻被结束,那么将使用来自onSavedInstanceState()的Bundle作为参数调用onCreate()如果Activity已经运行,并且已将Activity设置为根据不同的手机状态(例如横向和纵向)提供不同的资源,那么将重新创建Activity并调用onCreate()onCreate()和onDestroy()onDestro
5、y()方法是Activity关闭时调用的方法。一个Activity的整个生命周期是从第一次调用onCreate()方法和调用onDestroy()方法之间的这段时间onStart()、onRestart()和onStop()Activity在前台运行可能是因为他是首次启动,也可能是因为在被隐藏之后被调回前台,这些情况下都会调用onStart()方法在停止后重新启动Activity时,将调用onRestart()方法要停止Activity时,将调用onStop()方法在一组onStart()和onStop()方法之间的时间,被称为可见生命周期可见状
6、态前台状态可见状态onResume()和onPause()在Activity初始启动、从停止状态重新启动后,或者清除了一个弹出对话框之后,在Activity回到前台之前将调用onResume()方法。相仿,使用户远离Activity的任何操作(通常是激活另一个Activity)都将导致onPause()被调用。以Android手机为例,按下Home键,会让手机回到主屏幕,这个时候现有的Activity就会调用onPause()。在一组onResume()和onPause()方法之间的时间,被称为前台生命周期。Android的活动栈Android是
7、通过一种Activity栈的方式来管理Activity的,一个Activity的实例的状态决定它在栈中的位置。处于前台的Activity总是在栈的顶端,当前台的Activity因为异常或其它原因被销毁时,处于栈第二层的Activity将被激活,上浮到栈顶。当新的Activity启动入栈时,原Activity会被压入到栈的第二层。一个Activity在栈中的位置变化反映了它在不同状态间的转换。Android的活动栈除了最顶层即处在Active状态的Activity外,其它的Activity都有可能在系统内存不足时被回收,一个Activity的实例越
8、是处在栈的底层,它被系统回收的可能性越大。系统负责管理栈中Activity的实例,它根据Activity所处的状态来改变其在栈中的位置。
此文档下载收益归作者所有