首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

跟我学Android之十四 Activity的生命周期

Activity介绍 l对于任何一个Android应用程序来讲,Activity类都是其核心组成部分。许多时候,在应用程序中,你将会为每一个屏幕显示定义和实现一个Activity。...Activity被部分遮挡 当Activity从后台再次被切换到前台来的时候(执行onResume) 在应用进入暂停状态时,onPause回调函数将执行,在onPause中应该执行适当的资源释放任务,比如...当Activity再次启动时 虽然onRestart会执行,但是恢复资源的操作应该写在onStart里面 因为第一次启动Activity是onStart也会执行 重新创建Activity 有时候...Activity时会传回这些信息 •onRestoreInstanceState和onCreate都会得到这些信息 •onCreate在第一次创建时也会执行 •数据的恢复任务应该在onCreate...Activity时会传回这些信息 这时onRestoreInstanceState和onCreate都会得到这些信息 lonCreate在第一次创建时也会执行 所以数据的恢复任务应该在onCreate写更好

7910

跟我学Android之十四 Activity的生命周期

Activity介绍​ l对于任何一个Android应用程序来讲,Activity类都是其核心组成部分。许多时候,在应用程序中,你将会为每一个屏幕显示定义和实现一个Activity。...,此时当前的Activity被部分遮挡 当Activity从后台再次被切换到前台来的时候(执行onResume) 在应用进入暂停状态时,onPause回调函数将执行,在onPause...,onPause会执行,但是耗时的操作还是应该写在这里 当Activity再次启动时 虽然onRestart会执行,但是恢复资源的操作应该写在onStart里面 因为第一次启动Activity...•onCreate在第一次创建时也会执行 •数据的恢复任务应该在onCreate写更好...在重新启动Activity时会传回这些信息 这时onRestoreInstanceState和onCreate都会得到这些信息 lonCreate在第一次创建时也会执行

10810
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Android学习笔记(四)深入探讨Activity

    在应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕。这个主界面一般由多个Fragment组成,并由一组次要Activity支持。...(savedInstanceState); 7 //初始化Activity并填充UI 8 } 9 10 //在onCreate方法完成后调用,用于恢复UI.../* 40 * 恢复Activity需要,但是当它处于不活动状态时被挂起的暂停的UI更新、线程或进程 41 * 在Activity状态生命周期结束的时候滴啊用,用来保存...当UI再次启动时,可以用onStart或者onRestart方法来恢复或者重启这些进程。   onRestart在除了对onStart方法的第一次调用之外的所有方法之前被立即调用。...Activity被销毁前可能会经历多个活动生存期,在失去焦点是,活动生存期就结束了。尽量让onPause和onResume方法中的代码执行迅速,尽可能少。以保证前后台切换时能够保持响应。

    1.1K100

    Activity生命周期

    所以通常手机系统的界面一次仅显示一个应用程序窗口,Android使用了Activity的概念来表示界面。   ...Activity生命周期的运行如图: Activity生命周期进程类型   在Android系统中,即使不关掉程序,当应用程序处于某种进程类时,也有可能被系统kill掉。   ...foreground process(前景模式)是当前显示于手机屏幕上的应用程序画面,被定义为前景模式的进程,其中由onCreate()、onStart() 、onResume() 函数调用的Activity...当从Stopped状态回到前景时,首先需要调用onRestart(),这个函数做一些恢复工作,恢复停止但是并没有被销毁的activity;然后系统会接着调用onStart(),因为每次activity变为可见时都要调用...可以把onStart()和onStop()看成一对,因为在一开始启动时和重新启动时都需要做一些初始化工作。

    73510

    Android基础_1 四大基本组件介绍与生命周期

    ,使用此方法启动时,服务首次启动系 统先调用服务的onCreate()-->onBind(),如果服务已经启动再次调用不会再触发这2个方法,调用者退出时系统会调用服务的 onUnbind()-->onDestory...而当用户按下BACK 键的时候,你的activity 又会再一次的显示在屏幕上,此时任务是由2个应用程序中的相关activity组成的)栈底的是启动整个任务的Activity,栈顶的是当前运行的用户可以交互的...而前一个activity 仍保持在栈之中。当用户按下BACK 键的时候,当前activity 出栈,而前一个恢复为当前运行的activity。...则当前任务遁入后台,而新任务的根activity 显示出来。然后,过了一小会儿,用户再次回到了应用程序加载器而又选择了前一个应用程序(上一个任务)。...3.onRestart()           当Activity已经停止然后重新被启动时,系统会调用 4.onResume();       当Activity可见且获得用户焦点能交互时,系统会调用

    1.5K30

    Android查缺补漏--Activity生命周期和启动模式

    onStart():首次启动Activity时在onCreate()之后被回调,再次启动时在onRestart()之后被回调。此时Activity已经可见但还没出现到前台不能与用户交互。...值得注意的地方: onStart和onResume咋看起来差不多,但有一些细微的差别,onStart表示Activity虽然此时已经可见但并没有完全显示到前台,onResume表示此时已经完全显示到前台了...当ActivityA启动ActivityB时,他们的生命周期方法执行顺序如下: A.onPause->B.onCreate->B.onStart->B.onResume->A.onStop 日志如下:...在横竖屏切换时Activity会先被销毁,然后再重新创建,在销毁时onPause()被调用之后会调用onSaveInstanceState(Bundle bundle),此时我们就有机会将一些需要恢复的信息写入...onRestoreInstanceState()用来恢复一些必要的信息,而它的参数就是我们在onSaveInstanceState写入的参数。

    62000

    大话企业级android读书笔记(二)

    当它再次显示给用户时,必须要完全重新启动和恢复到之前的状态。...() void onResume() void onPause() void onStop() void onDestroy() 所有这些方法都是钩子,你可以重写当状态改变时做适当的工作。...在这期间,用户可以在屏幕上看见活动,虽然它可能不是运行在前台且与用户交互。在这两个方法之间,你可以保持显示活动所需要的资源。...在这期间,频繁地在重用和暂停状态转换——例如,当设备进入睡眠状态或一个新的活动启动时调用onPause(),当一个活动返回或一个新的意图被传输时调用onResume()。...着色的椭圆表示活动的主要状态,矩形表示当活动在状态之间转换时你可以执行的回调方法。 ?

    1K50

    速读原著-Android应用开发入门教程(Android应用程序的概念性描述)

    Android 的一个活动一般对应界面中的一个屏幕显示,可以理解成一个界面,每一个活动在界面上可以包含按钮、文本框等多种可视的 UI 元素。...()方法正在执行); 进程有一个 Service,并且在 Service 的某个方法(Service.onCreate()、Service.onStart()或者 Service.onDestroy()...系统中通常有很多这样的进程在运行,因此要将这些进程保存在 LRU 列表中,以确保当内存不足时用户最近看到的进程最后一个被杀死。 (5)空(Empty)进程 不包含任何处于活动状态的应用程序组件。...运行活动的情景:当一个活动被启动时,活动中的 onCreate()、onStart()和 onResume()这 3 个方法被依次调用,活动对应的界面出现在屏幕上。...活动被恢复的情景:当界面上最前面的活动退出后,它所覆盖的活动将被恢复,这时 onResume()方法将被调用,活动重新转入前台运行。

    1K10

    深入学习Activity的生命周期和启动模式

    -> onResume -> onSaveInstanceState(和onPause没有确定的时序关系) -> onStop -> onDestroy -> onCreate -> onStart...关于保存和恢复View层次结构,系统的工作流程是:首先,Activity被意外终止时,Activity会调用onSaveInstanceState保存数据,然后,Activity会委托Window保存数据...可以看到Activity中的onCreate和onRestoreInstanceState中都有Bundle savedInstanceState参数,说明可以在这两个方法中都可以恢复数据,但这两者是有区别的...如果不希望在横竖屏切换时重新创建Activity,可以给Activity指定configChanges属性。 常用的属性值有: locale:设备的本地位置发生了改变,一般指切换了系统语言。...解决方法:为待启动的Activity指定FLAG_ACTIVITY_NEW_TASK标记位,这样在启动时就会为它创建一个新的任务栈,这时启动Activity实际上是以singleTask模式启动的。

    72910

    Activity详细解释(生命周期、以各种方式启动Activity、状态保存,等完全退出)

    在一个应用程序中通常由多个Activity构成。...Activity的启动过程:onCreate—onStart—onResume;下返回键时:onPause—onStop—onDestroy 正如上面说是,当按下返回键时,此Activity弹出栈。...我们再次 打开时的启动过程又回到onCreate—onStart—onResume。OK,启动之后按下Home键。回到Launcher。查看信息打印:onPause—onStop。...onRestart():在 activity 被停止后又一次启动时会调用该方法。其兴许会调用 onStart 方法。 onStart()à当 activity 对于用户可见前即调用这种方法。...由于这个原因,你的 activity 能否在其又一次创建时完毕保存状态就显得尤为重要,由于用户常常会在使用应用程序时旋转屏幕的。

    1.1K20

    Android:保存 & 恢复Activity 状态缓存 - onSaveInstanceState()、onRestoreInstanceState()

    具体调用场景 假定为Activity A显示在当前Activity栈的最上层时,以下情况会执行onSaveInstanceState() 注:系统不知道你切换到其他地方后要运行多少其他的程序,自然也不知...:onRestoreInstanceState() & onCreate() // 上述二者都有一个Bundle类型的参数用于恢复数据 savedInstanceState.putBoolean...调用时机 当系统“未经你许可”时,确实销毁了你的Activity,则重新启动时会被系统调用 特别说明: 与onSaveInstanceState()区别:此处是 “确实销毁”后才调用 若是 被用户主动销毁...: onCreate() onStart() onRestoreInstanceState() onResume() 4....()不会被执行 onSaveInstanceState的bundle参数会传递到onCreate方法中,可选择在onCreate()中做数据还原 至此,关于Activity的临时数据 & 状态 保存 &

    3.1K30

    Activity具体解释(生命周期、以各种方式启动Activity、状态保存,全然退出等)

    Activity的启动过程:onCreate—onStart—onResume;下返回键时:onPause—onStop—onDestroy 正如上面说是,当按下返回键时,此Activity弹出栈,程序销毁...确实如此,我们再次 打开时的启动过程又回到onCreate—onStart—onResume。...onRestart():在 activity 被停止后又一次启动时会调用该方法。其兴许会调用 onStart 方法。 onStart()à当 activity 对于用户可见前即调用这种方法。...不管在该方法里面进行不论什么操作,都须要较高速完毕,由于假设它不返回的话,下一个 activity 将无法恢复出来。...由于这个原因,你的 activity 能否在其又一次创建时完毕保存状态就显得尤为重要,由于用户常常会在使用应用程序时旋转屏幕的。

    39810

    Android程序员问答题

    生命周期:在整个的生命周期,从onCreate(Bundle)开始到onDestroy()结束。从onStart()开始到onStop()结束。从onResume()开始到onPause(()结束。...所以Activity生命周期:包含的回调方法有,onCreate(); onStart(); onResume(); onPause(); onStop(); onDestroy() 2.Activity...3.Service服务 服务是一个应用程序组件,代表应用程序希望在不与用户交互的情况下执行长时间运行的操作,或者提供其他应用程序使用的功能。 4.什么是服务? 服务不是一个单独的过程。...singleTop是在启动活动时如果发现返回栈的栈顶已经是该活动,则认为可以直接使用它。 singleTask是如果每次启动时系统首先会在返回栈中检查是否存在该活动的实例。...Intent为在不同应用程序中的代码之间执行延迟的运行时绑定提供了一种工具。其最重要的用途是开展活动,在活动中它可以被认为是活动之间的胶水。它基本上是一个被动的数据结构,对被执行的动作进行抽象描述。

    67020

    Android中各组件的生命周期

    onStart():当Activity可见未获得用户焦点不能交互时系统会调用。 onRestart():当Activity已经停止然后重新被启动时系统会调用。...在这两个方法之间,可以保持显示Activity所需要的资源。如在onStart()中注册一个广播接收者监听影响你的UI的改变,在onStop()中注销。...7、一个activity的启动过程 (1)第一个Activity的启动顺序:onCreate()——>onStart()——>onResume() (2)当另一个Activity启动时:第一个Activity...onPause()——>第二个Activity onCreate()——>onStart()——>onResume()——>第一个Activity onStop() (3)当返回到第一个Activity...onDestroy() 每一个Activity都处于某一个状态,对于开发者来说,是无法控制其应用程序处于某一个状态的,这些均由系统来完成。

    856100

    Android性能优化系列之App启动优化

    利用TraceView分析启动时间 在onCreate开始和结尾打上trace. Debug.startMethodTracing("TestApp"); ......针对冷启动时候的一些耗时,可以采取以下策略: 1、在Application的构造器方法、attachBaseContext()、onCreate()方法中不要进行耗时操作的初始化,一些数据预取放在异步线程中...优化应用启动时的体验 对于应用的启动时间,只能是尽量的避免一些耗时的、非必要的操作在主线程中,这样相对可以缩减一部分启动的耗时,另外一方面在等待第一帧显示的时间里,可以加入一些配置以增加体验,比如加入Activity...); } 这样在启动时会先显示background,然后待界面绘制完成再显示主界面: 方案2:通过设置Style (1)设置背景图Theme 通过设置一张背景图。...当程序启动时,首先显示这张背景图,避免出现黑屏

    71550

    【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★

    懒加载 : 尽量使用懒加载策略 , 避免在应用启动时大量调用方法 ; ① 定时器或线程延迟加载 : 开一个定时器或线程过一段时间 ( 3 秒后 ) 加载 ; ② 在 onResume 方法中加载 ; ③...; 在 Application 或 Activity 代码的 onCreate 方法中 , 尽量不要有任何 访问 文件 , 数据库 , SharedPreference , 初始化第三方框架 等操作...应用启动时间计算相关源码分析 在 【Android 性能优化】应用启动优化 ( 启动白屏问题 | 应用启动时间测量 | 冷启动 | 热启动 | 应用启动时间计算源码分析 ) 博客中分析了应用启动时间计算相关的源码...应用初始化 | 启动优化项目 ) 博客对应用入口类 , 即 ActivityThread 主函数类进行了分析 , 从这里开始初始化应用的 Application , Activity , 其中就发现应用启动时..., 需要调用 Application 和 Launcher Activity 的 onCreate 方法 , 这两个方法中绝对不能执行耗时操作 , 这也是启动优化唯一可以优化的地方 ; 启动优化就是在

    88110

    Android入门教程 | Fragment 基础概念

    不过,当 Activity 正在运行(处于已恢复生命周期状态)时,可以独立操纵每个片段,如添加或移除片段。...通常,至少应实现以下生命周期方法: onCreate() 系统会在创建片段时调用此方法。当片段经历暂停或停止状态继而恢复后,如果希望保留此片段的基本组件,则应在实现中将其初始化。...savedInstanceState 参数是在恢复片段时,提供上一片段实例相关数据的 Bundle(处理片段生命周期部分对恢复状态做了详细阐述)。...不过,如果在删除片段时调用 addToBackStack(),则系统会停止该片段,并随后在用户回退时将其恢复。...->onResume 的生命周期,明明 Fragment 没有显示却已经到onResume 了,在某些情况下会出现问题。比如数据的加载时机、判断 Fragment 是否可见等。

    3.5K40
    领券