activity生命周期

[整] Android Fragment 生命周期图

十年热恋 提交于 2019-12-27 17:22:09
1 生命周期两张图 Fragment生命周期图: Fragment与Activity生命周期对比图: 2 生命周期分析 1. 当一个fragment被创建的时候,它会经历以下状态. onAttach() onCreate() onCreateView() onActivityCreated() 2. 当这个fragment对用户可见的时候,它会经历以下状态。 onStart() onResume() 3. 当这个fragment进入“后台模式”的时候,它会经历以下状态。 onPause() onStop() 4. 当这个fragment被销毁了(或者持有它的activity被销毁了),它会经历以下状态。 onPause() onStop() onDestroyView() onDestroy() // 本来漏掉类这个回调,感谢xiangxue336提出。 onDetach() 5. 就像activitie一样,在以下的状态中,可以使用Bundle对象保存一个fragment的对象。 onCreate() onCreateView() onActivityCreated() 6. fragments的大部分状态都和activitie很相似,但fragment有一些新的状态。 onAttached() —— 当fragment被加入到activity时调用

android activity生命周期

China☆狼群 提交于 2019-12-25 03:01:09
Activity生命周期:     一个 activity 主要有三个状态: · 当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的 activity 。 · 当它失去焦点但仍然对用户可见时,它处于暂停状态。即是:在它之上有另外一个 activity 。这个 activity 也许是透明的,或者未能完全遮蔽全屏,所以被暂停的 activity 仍对用户可见。 暂停的 activity 仍然是存活状态 (它保留着所有的状态和成员信息并连接至窗口管理器),但当系统处于极低内存的情况下,仍然可以杀死这 个 activity 。 · 如果它完全被另一个 activity 覆盖是,它处于 停止状态。它仍然保留所有的状态和成员信息。然而它不在为用户可见,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个 activity 。 如果一个 activity 处于暂停或停止状态,系统可以通过要求它结束(调用它的 finish() 方法)或直接杀死它的进程来将它驱出内存。当它再次为用户可见的时候,它只能完全重新启动并恢复至以前的状态。 当一个 activity 从这个状态转变到另一个状态时,它被以下列 protected 方法所通知: void onCreate(Bundle savedInstanceState) void onStart() void

带你从理论到代码学习Activity

时光总嘲笑我的痴心妄想 提交于 2019-12-10 11:29:35
从今天开始,将不定时给大家更新“带你从理论到代码学习XX”系列,顾名思义,就是对安卓开发的某块点进行讲解,从它主要的理论知识到最后使用它开发一个小实例来讲解,慢慢循序渐进,闯关下去。废话不多说,马上进入主题。 1. Activity的理论知识 作为经常打交到的组件之一,xml写完布局,然后就在Activity里进行逻辑处理,虽然简单,但或者这部分理论知识(生命周期、启动模式和显式/隐式启动Activity)能让你有“原来是这样”的豁然开朗之感,也可能对你面试有帮助。 生命周期 Activity的生命周期要说的其实就是三点:正常情况下的生命周期,异常情况下的生命周期,还有它的一个各个生命周期方法的流程图说明。 (1)正常的生命周期 正常情况下的生命周期没什么好说的,就是:onCreate()--onStart()--onResume()--onPause()--onStop()--onDestroy() (2)异常的生命周期 首先明确,什么才是异常的情况,那就是当一些资源相关的系统配置发生改变(比如旋转屏幕、调出打字键盘等)或者系统内存不足导致优先级很低的Activity被关闭,这两种情况的发生都会让Activity处于异常的生命周期。 异常情况下的生命周期如下图所示: 相比正常的生命周期,出现了两个不一样的方法,onSaveInstanceState(

Android:Activity生命周期

寵の児 提交于 2019-12-06 10:25:43
参考: 《第一行代码:Android》 郭霖(著) Activity所在的栈为后进先出(Last In First Out)结构。 Activity状态 运行状态(S1): 该Activity处于与User交互的状态,即是位于栈顶的Activity。 系统一般不考虑回收该处内存。 暂停状态(S2): Activity不再处于栈顶( Another activity comes in front of the activity ),但仍然是可见的。 系统只有在内存 极低 时才考虑回收内存。 停止状态(S3): Activity不处于栈顶&完全不可见( The activity is no longer visible )。 系统会保存该Activity相应的状态和变量,但内存被回收的几率增大,即不能保证该Activity没有被回收。( Process is killed ) 销毁状态(S4): Activity从栈中被移除(调用finish()或点击Back键)。 重点回收该状态下的Activity占用的内存。 Activity生存期 onCreate() Activity被创建时调用,完成各种初始化操作。 onStart() Activity由 不可见 ( invisible )变为 可见 ( invisible )时调用。 onResume()

Activity生命周期理解

我怕爱的太早我们不能终老 提交于 2019-12-05 11:42:29
在Android应用程序运行时,Activity的活动状态由Android以Activity栈的形式管理,当前活动的Activity位于栈顶。随着应用程序之间的切换、关闭等,每个Activity都有可能从活动状态转入非活动状态,当然,也可以从非活动状态转入活动状态。 下面,我们借助一个关于Activity生命周期模型图进行理解。 从图中可以看出来,在Activity的生命周期中,会有如下方法会被系统回调: void onCreate(Bundle savedInstanceState):创建Activity时会被回调。 void onStart():首次创建Activity时在onCreate方法之后执行,但会有另外一种情况,后面会进行分析,总之,就是启动Activity时被回调。 void onRestart():该活动在Activity没有被销毁时会一直存在Activity栈中,重新启动Activity时会被回调。 void onResume():用户在进行Activity切换时,恢复相应的Activity时回调。在void onStart()方法后一定会回调的方法。 void onPause():Activity被暂停时回调,活动会被压倒栈中。 void onStop():Activity被停止时回调。 void onDestroy():Activity被销毁时回调

  [Android] Activity ConfigChanges属性

丶灬走出姿态 提交于 2019-12-05 02:48:05
通过 设置 这个属性可以使Activity捕捉设备状态变化,以下是可以被识别的内容: 设置方法:将下列字段用“|”符号分隔开,例如:“ locale|navigation|orientation ” Value Description “ mcc “ The IMSI mobile country code (MCC) has changed — that is, a SIM hasbeen detected and updated the MCC.移动国家号码,由三位数字组成,每个国家都有自己独立的MCC,可以识别 手机 用户所属国家。 “ mnc “ The IMSI mobile network code (MNC) has changed — that is, a SIM hasbeen detected and updated the MNC.移动网号,在一个国家或者地区中,用于区分手机用户的服务商。 “ locale “ The locale has changed — for example, the user has selected a new language that text should be di spl ayed in.用户所在地区发生变化。 “ touchscreen “ The touchscreen has changed. (This

Android 第六课——Activity高级

 ̄綄美尐妖づ 提交于 2019-12-05 02:47:55
Activity 生命周期: 生命周期7个方法的调用时机: 1)onCreate:第一次创建这个Activity时, 也就是系统中没有缓存当前的Activity时,这个方法首先被调用。调用之后这个Activity就会被压入所谓的Android Task栈中缓存起来,下次用时出栈就可以。所以,为了更加节约资源,我们一般把Activity所对应的layout中拥有的组件首先使用private作为这个Activity的私有成员,然后在onCreate方法中初始化,这样只要在Activity创建的时候,初始化一次组件就够了。 2)onstart:当这个Activity成为用户可见状态时, 也就是在手机界面上正确显示的时候这个方法会被调用。所以,如果一个Activity之前已经创建好了,下次再次调用时(比如返回按钮)就会从Task栈中获取直接返回给用户,那么就不会再调用onCreate了,而是先调用onRestart,然后等到用户可见状态时调用onStart。 3)onResume:当这个Activity成为用户可见状态而且用户可以获取焦点时, 也就是在onStart之后,当这个视图可以与用户交互时这个方法会被调用。这个方法调用完成之后,整个Activity就是处于运行状态了。 4)onPause:当一个Activity正在使用,这时另一个Activity开始启动

[Android] Activity生命周期

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 06:20:27
Actvity 堆栈 每个Actvity的状态由它所在Activity栈中的位置所决定,所有当前正在运行的Actvity将遵循照后进先出的原则。当一个新的 Activity启动,当前的Activity将移至堆栈的顶部,如果用户使用Back按钮,或在前台Activity被关闭,下一个Activity将 被激活并且移至到堆栈的顶部。这个过程如下图所示 Activity状态 随着Activity的创建和销毁,也就会进出栈如上图所示,其中可能会经历以下四种状态: Active状态:这时候Activity处于栈顶,且是可见的,有焦点的,能够接收用户输入前 景Activity。Runtime将试图不惜一切代价保持它活着,甚至杀死其他Activity以确保它有它所需的资源。当另一个Activity变成Active时,当前 的将变成Paused状态。 Paused状态:在某些情况下,你的Activity是可见的,但没有焦 点,在这时候,Actvity处于Paused状态。例如,如果有一个透明或非全屏幕上的Activity在你的Actvity上面,你的 Activity将。当处于Paused状态时,该Actvity仍被认为是Active的,但是它不接受用户输入事件。在极端情况下,Runtime将杀死Paused Activity,以进一步回收资源。当一个Actvity完全被遮住时

Android 第六课——Activity生命周期

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-04 01:33:16
声明:本文转载自 http://blog.csdn.net/liuhe688/article/details/6733407 , 感觉读了这篇文章之后,对Activity又是一个更深层次的理解,所以果断手贱转载了!希望自己以后能多看看这篇文章,提升自己! 熟悉javaEE的朋友们都了解servlet技术,我们想要实现一个自己的servlet,需要继承相应的基类,重写它的方法,这些方法会在合适的时间被servlet容器调用。其实android中的Activity运行机制跟servlet有些相似之处,Android系统相当于servlet容器,Activity相当于一个servlet,我们的Activity处在这个容器中,一切创建实例、初始化、销毁实例等过程都是容器来调用的,这也就是所谓的“Don't call me, I'll call you.”机制。 我们来看一下这一张经典的生命周期流程图: 相信不少朋友也已经看过这个流程图了,也基本了解了Activity生命周期的几个过程,我们就来说一说这几个过程。 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。 2.当前Activity被其他Activity覆盖其上或被锁屏:系统会调用onPause方法,暂停当前Activity的执行。 3

Fragment 的生命周期及使用方法详解

旧城冷巷雨未停 提交于 2019-12-04 01:17:45
Fragment 的基础知识介绍 1.1 概述 1.1.1 特性 By hebang32624 Fragment 是 activity 的界面中的一部分或一种行为。可以把多个 Fragment 组合到一个 activity 中来创建一 个多面界面并且可以在多个 activity 中重用一个 Fragment。可以把 Fragment 认为模块化的一段 activity,它具 有自己的生命周期,接收它自己的事件,并可以在 activity 运行时被添加或删除。 Fragment 不能独立存在,它必须嵌入到 activity 中,而且 Fragment 的生命周期直接受所在的 activity 的影 响。例如:当 activity 暂停时,它拥有的所有的 Fragment 都暂停了,当 activity 销毁时,它拥有的所有 Fragment 都被销毁。然而,当 activity 运行时(在 onResume()之后,onPause()之前),可以单独地操作每个 Fragment, 比如添加或删除它们。当在执行上述针对 Fragment 的事务时,可以将事务添加到一个栈中,这个栈被 activity 管 理,栈中的每一条都是一个 Fragment 的一次事务。有了这个栈,就可以反向执行 Fragment 的事务,这样就可以在 Fragment 级支持“返回”键(向后导航)。 当向