Activity生命周期解说
金星-手机平台应用开发 第三章 activity-文档资料

Top
Activity n
第三章 Activity
Activity生命周期 Activity的启动模式 显式意图和隐式意图 Activity中的数据传递
✎ 学习目标
Activity的生命周期
3
Activity简介
Activity中的数据传递
显式意图和隐式意图
1
掌握 Android中的任务栈 Activity的四种启动模式
2
3.1 Activity入门
• 3.1.4 案例Байду номын сангаас—Activity的存活
– 为了让初学者掌握Activity的生命周期,接下来通过Activity存活的案例 来演示两个Activity跳转时,生命周期方法变化的过程。
3.1 Activity入门
• 脚下留心:横竖屏切换时的生命周期
–当手机横竖屏切换时,Activity会销毁重建(模拟器中横竖屏切换可以使 用ctrl+F11)。 –如果不希望在横竖屏切换时Activity被销毁重建,可以在 AndroidManifest.xml文件中设置Activity的android:configChanges的属性 ,具体代码如下所示: • android:configChanges="orientation|keyboardHidden|screenSize“ –如果希望某一个界面一直处于竖屏或者横屏状态,可以在清单文件中通过 设置Activity的属性来完成,具体代码如下所示: • 竖屏:android: screenOrientation="portrait" • 横屏:android: screenOrientation="landscape"
activity各表作用

activity各表作用一、Activity的作用Activity是Android应用程序的基本组件之一,它承载了用户与应用程序之间的交互。
Activity的作用主要体现在以下几个方面:1. 提供UI界面:Activity是Android应用程序的界面展示层,通过Activity可以展示各种UI组件,如按钮、文本框、列表等,使用户可以与应用程序进行交互。
2. 处理用户输入:Activity负责接收用户的输入,如点击按钮、触摸屏幕等,然后根据用户的操作进行相应的处理,如启动其他Activity、发送网络请求等。
3. 生命周期管理:Activity具有丰富的生命周期方法,如onCreate、onStart、onResume等,通过这些方法可以管理Activity的创建、销毁、暂停、恢复等过程,以及保存和恢复Activity的状态。
4. 与其他组件的交互:Activity可以与其他Android组件进行交互,如启动其他Activity、调用其他应用程序的服务、发送广播等,从而实现不同组件之间的通信和协作。
5. 启动模式设置:通过设置Activity的启动模式,可以控制Activity的创建和销毁方式,如设置为singleTop可以使得Activity在栈顶时不重新创建,提高性能和用户体验。
二、布局文件(XML)的作用布局文件是Activity的界面布局描述文件,通过布局文件可以定义Activity的UI界面。
布局文件的作用主要体现在以下几个方面:1. 视图层次结构:布局文件可以定义界面的视图层次结构,即各种UI组件的层次关系和排列方式,如线性布局、相对布局、帧布局等。
2. UI组件的属性设置:通过布局文件可以为UI组件设置各种属性,如大小、位置、颜色、背景等,从而实现对UI界面的定制和美化。
3. 响应事件的绑定:布局文件可以为UI组件绑定响应事件,如点击事件、长按事件等,从而实现用户的交互操作。
4. 多语言支持:通过布局文件可以实现多语言的支持,根据系统语言自动切换布局文件,实现国际化和本地化。
Activity 的生命周期 以及 横屏竖屏切换时 Activity 的状态变化

/foura/articles/2016762.html/lincode/archive/2011/09/16/358768.html生命周期Android 系统在Activity 生命周期中加入一些例子,我们可以在这些系统预留的例子中做一些事情。
例举了7 个常用的例子:protected void onCreate(Bundle savedInstanceState)protected void onStart()protected void onResume()protected void onPause()protected void onStop()protected void onRestart()protected void onDestroy()简要说明:onCreate(Bundle savedInstanceState):创建activity时调用。
设置在该方法中,还以Bundle 中可以提出用于创建该Activity 所需的信息。
onStart():activity变为在屏幕上对用户可见时,即获得焦点时,会调用。
onResume():activity开始与用户交互时调用(无论是启动还是重新启动一个活动,该方法总是被调用的)。
onPause():activity被暂停或收回cpu和其他资源时调用,该方法用于保存活动状态的。
onStop():activity被停止并转为不可见阶段及后续的生命周期事件时,即失去焦点时调用。
onRestart():重新启动activity时调用。
该活动仍在栈中,而不是启动新的活动。
onDestroy():activity被完全从系统内存中移除时调用,该方法被调用可能是因为有人直接调用finish()方法或者系统决定停止该活动以释放资源。
横竖屏切换1 切换到横屏onSaveInstanceStateonPauseonStoponDestroyonCreateonStartonRestoreInstanceStateonResume2 切换到竖屏,销毁了两次onSaveInstanceStateonPauseonStoponDestroyonCreateonStartonRestoreInstanceStateonResumeonSaveInstanceStateonPauseonStoponDestroyonCreateonStartonRestoreInstanceStateonResume3 修改AndroidManifest.xml,把该Activity添加android:configChanges="orientation",切横屏,只销毁一次。
android面试题及答案

android面试题及答案一、Activity 生命周期相关1. 请简述Activity的生命周期,并解释每个状态的含义。
- Activity生命周期主要包括 onCreate(), onStart(), onResume(), onPause(), onStop(), 和 onDestroy() 六个回调方法。
onCreate() 在Activity第一次创建时调用,用于初始化界面和数据;onStart() 当Activity对用户可见时调用,表示Activity从后台进入前台;onResume() 当Activity准备与用户交互时调用,此时可以获取到用户输入;onPause() 当Activity失去焦点,但不一定会结束时调用,用于保存数据和清理资源;onStop() 当Activity完全不可见时调用,用于释放资源;onDestroy() 当Activity被完全销毁时调用。
2. Activity和Fragment的生命周期有什么区别?- Activity和Fragment的生命周期大部分相似,但Fragment没有onCreate()方法,而是使用onAttach()和onDetach()方法来表示与Activity的关联和解绑。
Fragment还有onActivityCreated()方法,在Activity的onCreate()之后调用,表示Activity已经完全创建。
二、Intent 传递数据机制1. Intent在Android中的作用是什么?- Intent是Android中用于组件间通信的一种机制,它允许不同组件之间传递消息和请求操作。
Intent可以用于启动Activity、Service,或者发送广播等。
2. 如何使用Intent传递数据?- 可以通过Intent的putExtra()方法来传递数据。
例如,Intent intent = new Intent(this, TargetActivity.class);intent.putExtra("key", "value"); 然后通过startActivity(intent)启动目标Activity,目标Activity可以通过getIntent().getStringExtra("key")接收数据。
【推荐下载】android 中activity的启动模式是singleTask时清除activity的栈顶activity的生命周期小计

StandThreeActivity.onPause()
BaseActivity.onResume()
StandThreeActivity.onStop()
onDestory()
总的来讲,如果一个Activity的启动模式是SinleTask,在销毁栈内的其他
Activity时是从其栈顶的底部开始一个一个的销毁,直到栈顶的activity走
android中activity的启动模式是singleTask时清除activity的栈顶
activity的生命周期小计
2017/06/190安卓开发中经常会涉及到activity启动模式,当一个activity第
singleTASK时,清除栈顶的activity的时候,位于栈顶的activity的生命周期是如
onPause(),然后启动SingleTask的Activity,最后才销毁栈顶的Activity,走onStop
及onDestaory
tips:感谢大家的阅读,本文由我司收集整编。仅供参阅!
StandThreeActivity
生命周期如下:
BaseActivity.onCreate()
onStart()
onResume()
onPuase()
StandOneActivity.onCreate()
onStart()
onResume()
onPause()
StandTwoActivity.onCreate()
何走完的呢?这里做一个小计:
BaseActivity的启动模式是singleTask模式
StandOneActivity
StandTwoActivity
activity共23页PPT资料

什么是Activity
Activity是构建Android应用程序最基本的一种组件。在应用中, 一个Activity通常就是一个单独的屏幕。每一个activity都被实现为一个 独立的类,并且继承于Activity这个基类,其主要的功用是与用户进行交 互。
Activity生命周期
点击模拟器的返回键 日志如下:
Activity生命周期
生命周期七个方法阐释:
onCreate() 创建Activity时候调用。同时还以Bundle形式
提供存储以前任何状态的访问
onRestart() 重新启动Activity调用,该Activity在堆栈中,
Activity生命周期
通常一个Activity基本处于以下四种状态中的一种 当Activity在屏幕前台运行时(该Activity位于堆栈
的顶部),此时成为活动状态或者为运行状态。
当Activity已经失去焦点,但仍然可见,此时该 Activity处于暂停状态
当一个Activity跳转到另一个Activity,即一个新 Activity覆盖了原来的Activity,此时原Activity处于 停止状态。
当一个Activity处于暂停状态或者停止状态的时候, 系统可以根据需要是否销毁该Activity。
Activity生命周期
Activity生命周期
1. Activity的整个生命周期从onCreate方法开始, 到最终调用onDestroy方法结束。所以对于该 Activity中的全局的资源在onCreate方法中设置, 而最终在onDestroy方法中进行资源的回收。
Activity的生命周期
Activity的生命周期好好理解Activity的生命周期是非常重要的。
可以确保你的应用程序给用户提供一个完美的用户体验并适当的管理资源。
和前面介绍Application一样,Application不能自己控制自己的进程生命周期,Android系统运行时会管理每一个应用程序的进程,包括在应用程序里面的所有Activity。
当运行时需要终止并管理一个Activity的进程,这个Activity的状态会决定它所在的父应用程序的优先级。
接着,应用程序的优先级也会影响运行时,可能会终止该应用程序。
Activity 栈每一个Activity的状态会决定它在Activity栈中的位置,按照先进后出的方式组织现在所运行的所有的Activity,当一个新Activity启动时,当前位于前台的屏幕的将会移动到栈顶,如果用户点击了退后按钮,或者这个前台的Activity关闭了,栈中的下一个Activity会移动上来,并且处于活动状态,下图说明了这个过程:根据前面的说明,应用程序的优先级取决于它包含的最高优先级的Activity,当Android的内存管理决定终止哪一个Application以释放资源,也是使用这个栈决定建立在这些Activity上面的应用程序的优先级。
Activity 状态一个Activity从建立到销毁也就是移入到移出栈,这个过程通常可能包含以下四个状态:1、Active 获得状态,当一个Activity位于栈顶并显示在前台,等待获得用户输入命令,Android系统会尝试付出所有可能的资源保证它的运行,必要时会杀死一些在栈中位于比较靠后的一些Activity,以确保它需要的资源,当另外一个Activity变成Active状态,那么这个将会进入暂停状态。
2、Paused 暂停状态,有些情况下,你的应用程序会可见,但是不是获得用户输入的焦点,这种情况就是进入了暂停状态,出现这种状态也是是有一个半透明的或者不是全屏的Activity在它前面处于获得状态,当进入暂停状态,它会和处于获得状态一样对待,只是它不能获得用户的输入而已。
flagment生命周期相关
(一)理解Fragment生命周期 (1)(二)android Fragments详解六:处理fragement的生命周期 (5)把条目添加到动作栏 (5)处理fragement的生命周期 (5)协调与activity生命周期的关系 (7)(三)Fragment生命周期(各阶段状态) (7)(四)Fragment学习-----简介与生命周期研究(详细代码) (8)1、它在一个activity里面表示一个行为或者用户接口的一部分。
(9)2、一个fragment必须总是绑定到一个activity中,虽然fragment有自己的生命周期,但同时也被它的宿主activity的生命周期直接影响。
(9)3、fragment可以定义自己的布局文件(layout),当然其也可以没有自己的UI。
(9)4、Fragment对象的生命周期。
(10)5、Fragment的生命周期分析 (15)(一)理解Fragment生命周期分类:Android的深入2012-11-29 14:33 36454人阅读评论(20) 收藏举报官网帮助文档链接:/guide/components/fragments.html主要看两张图,和跑代码一,Fragment的生命周二,与Activity生命周期的对比场景演示: 切换到该Fragment11-29 14:26:35.095: D/AppListFragment(7649): onAttach11-29 14:26:35.095: D/AppListFragment(7649): onCreate11-29 14:26:35.095: D/AppListFragment(7649): onCreateView11-29 14:26:35.100: D/AppListFragment(7649): onActivityCreated 11-29 14:26:35.120: D/AppListFragment(7649): onStart11-29 14:26:35.120: D/AppListFragment(7649): onResume屏幕灭掉:11-29 14:27:35.185: D/AppListFragment(7649): onPause11-29 14:27:35.205: D/AppListFragment(7649): onSaveInstanceState 11-29 14:27:35.205: D/AppListFragment(7649): onStop屏幕解锁11-29 14:33:13.240: D/AppListFragment(7649): onStart11-29 14:33:13.275: D/AppListFragment(7649): onResume切换到其他Fragment:11-29 14:33:33.655: D/AppListFragment(7649): onPause11-29 14:33:33.655: D/AppListFragment(7649): onStop11-29 14:33:33.660: D/AppListFragment(7649): onDestroyView切换回本身的Fragment:11-29 14:33:55.820: D/AppListFragment(7649): onCreateView11-29 14:33:55.825: D/AppListFragment(7649): onActivityCreated11-29 14:33:55.825: D/AppListFragment(7649): onStart11-29 14:33:55.825: D/AppListFragment(7649): onResume回到桌面11-29 14:34:26.590: D/AppListFragment(7649): onPause11-29 14:34:26.880: D/AppListFragment(7649): onSaveInstanceState 11-29 14:34:26.880: D/AppListFragment(7649): onStop回到应用11-29 14:36:51.940: D/AppListFragment(7649): onStart11-29 14:36:51.940: D/AppListFragment(7649): onResume退出应用11-29 14:37:03.020: D/AppListFragment(7649): onPause11-29 14:37:03.155: D/AppListFragment(7649): onStop11-29 14:37:03.155: D/AppListFragment(7649): onDestroyView11-29 14:37:03.165: D/AppListFragment(7649): onDestroy11-29 14:37:03.165: D/AppListFragment(7649): onDetach比Activity多了一些生命周期,完整和Activity对接上,大家好好利用。
activity生命周期有几种状态
activity生命周期有几种状态
Activity生命周期有五种状态,分别是:
1.启动状态:当Activity启动后,会进入此状态,但此状态很短暂,会很快进入运行状态。
2.运行状态:Activity处于屏幕的最前端,它是可见的、有焦点的,并可以与用户进行交互,如单击、长按等事件。
此时,Activity 处于活动或运行状态。
3.暂停状态:在某些情况下,如Activity上覆盖了一个透明或非全屏的Activity,被覆盖的Activity仍然对用户可见,但无法获取焦点,此时它处于暂停状态。
暂停的Activity仍然是存活状态,保留着所有的状态和成员信息,并保持和窗口管理器的连接,但当系统内存不足时,它可能会被系统杀死。
4.停止状态:当Activity完全不可见时,如被另一个Activity 遮挡,它就处于停止状态。
此时,Activity仍然保留着当前的状态和成员信息,但由于对用户不可见,如果系统内存不足,这个Activity 很容易被系统杀死。
5.销毁状态:当Activity处于销毁状态时,意味着它将被清理出内存。
请注意,Activity生命周期指的是一个Activity从创建到销毁的全过程,包括上述的五种状态。
在Android开发中,理解和掌握Activity的生命周期对于内存管理和用户体验都至关重要。
android中手机切屏是activity生命周期的变化
android点滴(12) -- 1. Android横竖屏切换时,Activity的生命周期的变化(面试题)2011/10/15 10:49:48 | 阅读40次1.Android横竖屏切换时,Activity的生命周期的变化。
Activity的生命周期/Files/cod y1988/ActivityLifeCycle.rar完整生命周期(the entire lifetime)onCreate , onDestroy 在创建和销毁的时候调用。
在onCreate中初始化全局资源,在onDestroy中销毁资源。
可见生命周期(the visible lifetime)onStart , onStop 这是Activity可见,但是未必可交互即未必在最前面。
维护着用户可见的资源。
前景周期(the for eground lifetime)onResume , onPause 此时Activity在最前面,可与用户交互。
一个Activity可在Resume与Pause之间频繁的切换例如设备休眠。
因此这两个方法中只有相当轻量级的调用。
横竖屏切换时Activity的生命周期的变化与activity的configChanges的配置有关。
1.configChanges不配置运行:初始时TextView显示的内容为“Hello World, LifeCycle!”,点击Button竖屏切换为横屏:此时TextView的内容重新变为“Hello World, LifeCycle!”横屏切换为竖屏:2.配置configChanges<activity android:name=".LifeCycle"android:configChanges="orientation"android:label="@str in g/app_name">……</activity>运行,点击Button竖屏切换为横屏:没有发生变化横屏切换为竖屏:没有发生变化结论:横竖屏切换时Activity的生命周期与configChanges的配置相关。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Activity生命周期解说
二、事件方法链
2.1进入Activity
onCreate -> onStart -> onResume
2.2BACK键
onPause->onStop->onDestroy
2.3HOME键
Home键退出:onPause->onStop
Home键回来:onRestart -> onStart->onResume
2.4休眠/恢复
休眠:onPause
恢复:onResume
2.5旋转屏幕
未设置android:configChanges:
onPause -> onStop -> onDestory -> onCreate -> onStart -> onResume
设置了android:configChanges="orientation|keyboardHidden":
不会触发生命周期方法,参见文章这里。
2.6来电
来电,显示来电界面:
onPause -> onStop
关闭电话界面,重新回到当前Activity:
onRestart -> onStart->onResume
2.7其他Activity
进入下一个Activity:
onPause -> onStop
从其他Activity返回至当前Acitivity:
onRestart -> onStart->onResume
三、与Activity生命周期结合的应用场景
3.1与广播(Broadcast)结合
在onResume注册广播(registerLinstener),在onPause注销广播(unregisterLinstener)。
例如:
做"摇一摇"功能(传感器)、监听网络变化,就可以在onResume中注册监听,在onPause里注销掉,已节省资源提高效率。
3.2与服务(Service)结合
在onStart绑定服务(bindService),在onStop中取消绑定(unbindService)。
例如:
需要通过Service定时更新UI上的数据,而Activity的可见周期在onStart与onStop 之间,那么就可以再onStart时启动服务,在onStop时停止服务。
为了节约系统资源,除了提高用户体验以外,开发人员应尽可能的优化程序。
3.3与Cursor结合
使用managedQuery让Activity帮你管理Cursor的生命周期,不用自己去close。
但也有一些问题,补充两篇文章:这里1、这里2。
3.4释放资源
可以在onDestory中释放一些资源。
比如可以在onDestory时调用MediaPlayer的release。
四、注意
4.1所有Activity生命周期方法的实现都必须先调用其父类版本。
4.2由于Activity经常会暂停和恢复之间切换,所以onResume和onPause这两个方法应当是轻量级的。
4.3在系统再某种紧急情况下需要回收内存,onStop、onDestory可能不会被调用,因此需要在onPause中把需要长期保存的数据保存起来。