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

Android基础部分再学习---activity的生命周期

整个生命周期的活动中,系统可能会调用onStart()和onStop()多次,因为活动之间交替进行隐藏显示给用户。...需要保存某些数据数据库,您应该在onPause()里编写持久化数据的代码。...【这个里面一定不能太耗时,否则会阻塞,影响用户体验,onPause里面保存数据是可能保存到硬盘去的,因为他是用bundle进行管理的,bundle是由系统来管理的】 关于视图可见的问题: onPause...尽管onPauseonStop之前执行,但是onPause只适合做一些轻量级的操作,更多的耗时耗资源的操作还是要放在onStop里面,比如说对数据保存,需要用到的数据库操作。...当然相应的需要在onResume中重启初始化等等。 有时候也需要在onPause判断用户是调用finish结束这个Activity,还是暂时离开,以便区分处理。

87120

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

当onReceive()返回,它即为失活状态,注意:为了保证用户交互过程的流畅,一些费时的操 作要放到线程里,类名SMSBroadcastReceiver 2>            注册该广播接收者...动态注册广播接收器还有一个特点,就是当用来注册的Activity关掉,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。...(相当于应用外包了一层壳), 只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储一个内容提供者中 它的好处:统一数据访问方式。...5.onPause()         当系统启动另外一个新的Activity时,新Activity启动之前被系统调用保存现有的Activity中的持久数据、停止动画等,这个实现方法必须非常快。...当系统而不是用户自己出于回收内存时,关闭了activity 之后用户会期望当他再次回到这个activity 的时候,它仍保持着上次离开时的样子。

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

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

这种方法中通经常使用来提交一些还没保存的更改到持久数据 中,停止一些动画其他一些耗 CPU 的操作等等。...假设调用了该方法,通常是onStop 方法之前且可能在 onPause 之后调用。...但你能够用 onPause 方法在用户离开 activity 时来保存永久性数据,比方须要保存数据库的数据。...有一个非常好的方法能够用来检验应用程序保存状态的能力,就是简单地旋转你的设备来改变屏幕的方向。...由于这个原因,你的 activity 能否在其又一次创建时完毕保存状态就显得尤为重要,由于用户常常会在使用应用程序时旋转屏幕的。

38010

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

onPause():系统准备開始恢复其他 activity 时会调用该方法。 这种方法中通经常使用来提交一些还没保存的更改到持久数据 中。停止一些动画其他一些耗 CPU 的操作等等。...通常是onStop 方法之前且可能在 onPause 之后调用。...所以你应该仅仅是用它来保存一些 activity 的转换过程状态(即 UI 的状态),而不能用来保存永久性数据。但你能够用 onPause 方法在用户离开 activity 时来保存永久性数据。...比方须要保存数据库的数据。 有一个非常好的方法能够用来检验应用程序保存状态的能力。就是简单地旋转你的设备来改变屏幕的方向。...由于这个原因,你的 activity 能否在其又一次创建时完毕保存状态就显得尤为重要,由于用户常常会在使用应用程序时旋转屏幕的。

94520

Android 进阶解密笔记-插件化

这个阶段可以打开独占设备 onPause:pause表示暂停,当Activity要跳到另一个Activity应用正常退出时都会执行这个方法。...系统内存不足的时候可能不会执行onStop方法,因此程序状态的保存、独占设备和动画的关闭、以及一些数据保存最好在onPause中进行,但要注意不能太耗时。...按照生命周期图的表示,如果用户切换Activity的过程中再次切回原Activity,是onPause方法直接调用onResume方法的,这样onPause→onStop→onRestart→onStart...而onRestoreInstanceState是onStart之后、onResume之前调用的** onSaveInstanceState调用 Activity被覆盖退居后台之后,系统资源不足将其杀死...onRestoreInstanceState调用 Activity被覆盖退居后台之后,系统资源不足将其杀死,然后用户又回到了此Activity,此方法会被调用; 在用户改变屏幕方向时,重建的过程中,

79510

Android面试题(四大组件篇)

设备处于休眠状态时,会保留已注册的警报(如果设备在此期间发生故障,可以选择将其唤醒),但如果设备关闭并重新启动,则会清除该警报。...动态注册广播接收器特点是当用来注册的Activity关掉,广播也就失效了。静态注册无需担忧广播接收器是否被关闭,只要设备是开启状态,广播接收器也是打开着的。...(1)android平台提供了ContentProvider使一个应用程序的指定数据集提供给其他应用程序。其他应用可以通过ContentResolver类从该内容提供者中获取存入数据。...(2)只有需要在多个应用程序间共享数据是才需要内容提供者。例如,通讯录数据被多个应用程序使用,且必须存储一个内容提供者中。它的好处是统一数据访问方式。...(3)ContentProvider实现数据共享。ContentProvider用于保存和获取数据,并使其对所有应用程序可见。

87420

【Android从零单排系列三十五】《Android四大组件——Activity》

布局和界面:通过XML布局文件代码方式定义Activity的界面布局,使用各种UI组件(Button、TextView、EditText等)构建用户界面。...生命周期回调和状态保存Activity的生命周期中,可以进行一些相关操作,例如在onPause()时保存数据onCreate()onRestoreInstanceState()时恢复数据等。...这样可以确保应用程序发生配置更改内存不足时保持数据的完整性。...可以Intent中携带数据,启动目标Activity可以通过获取Intent中的数据进行处理。...onPause():生命周期方法,Activity失去焦点但仍可见时调用,用于保存轻量级的UI状态停止一些不必要的资源消耗。

19610

备战金九银十:BAT大厂最爱问的Android核心面试百题详细解析!

使用ContentProvider存储数据 主要用于应用程序之间进行数据交换,从而能够让其他的应用保存读取此Content Provider的各种数据类型。 5....当内存不足,onPause,onStop之后的activity可能会被系统摧毁。 当通过返回退出activity时,activity状态并不会保存。...Activity被销毁,重新启动时,onCreate方法中,接受保存的bundle参数,并将之前的数据取出。...所有接口都用短效token 如果返回短效 token失效,执行第3步,再直接当前接口 如果长效 token失效(用户设备超过一月),提示用户登录。...具体一些措施 尽量不要使用过多的静态类static 数据库使用完成要记得关闭 cursor 广播使用完之后要注销 100.如果有个100M大的文件,需要上传至服务器中,而服务器form表单最大只能上传

1.2K31

Android入门教程之Activity(生命周期,启动...)

因此,您不应使用 onPause() 来保存应用或用户数据、进行网络调用,执行数据库事务。因为该方法完成之前,此类工作可能无法完成。 已进入已停止状态,因此系统将调用 onStop() 回调。... onStop() 方法中,应用应释放调整应用对用户不可见时的无用资源。例如,应用可以暂停动画效果,从细粒度位置更新切换到粗粒度位置更新。...方法中传入的 Bundle 对象是销毁时 onSaveInstanceState 保存的,onRestoreIntanceState onStart之后。...onSaveInstanceState() 只适合用于保存一些临时性的状态,而onPause()适合用于数据的持久化保存。 8. 谈谈横竖屏切换过程中调用的函数 要切记这里活动已经被销毁了。...之后无论哪个应用程序启动该Activity,都只会调用栈中该实例。 11.

90900

安卓的四大组件之Activity-活动

3、如何保存Activity的状态? Activity的状态通常情况下系统会自动保存的,只是当我们需要保存额外的数据时才需要使用到这样的功能。...一般来说,调用onPause方法的activity实例仍然存在与内存中,activity的所有的信息和状态数据不会消失,当activity重新回到前台之后,所有的改变会得到保留。...但是当系统内存不足时,调用onPause和onStop方法,activity的实例可能会被系统摧毁,此时内存中就不会有activity的实例存在了。...需要注意的是,onSavaInstanceState方法不一定会被调用,因为有些场景不需要保存状态数据,比如用户按下BACK键后退出activity时,用户显然想要关闭这个avtivity,此时是没有必要保存数据以提供下一次恢复数据的...: lists) { activity.finish(); } lists.remove(this); 发送特定的广播 对每一个需要关闭的Activity都注册一个,广播接收者,需要关闭的时候发送一个广播

81650

安卓activity生命周期_请描述activity的生命周期

onPause系统即将开始继续另一个 Activity 时调用。 此方法通常用于确认对持久性数据的未保存更改、停止动画以及其他可能消耗 CPU 的内容,诸如此类。...--> test 总结:注意:onSaveInstanceState的调用时序onStop之前,但是和onPause 的调用时序就不一定了,有可能在onPause之前或者之后。...又因为无法保证系统会调用onSaveInstanceState(存在不需要保存状态的情况,例如用户使用“返回”按钮离开您的 Activity 时,因为用户的行为是显式关闭 Activity),因此您只应利用它来记录...Activity 的瞬态(UI 的状态)切勿使用它来存储持久性数据,而应使用onPause用户离开 Activity 存储持久性数据,例如应保存数据库的数据。...例如,EditText 小部件保存用户输入的任何文本,CheckBox小部件保存复选框的选中未选中状态。您只需为想要保存其状态的每个小部件提供一个唯一的 ID(通过 android:id 属性)。

54810

Android中各组件的生命周期

onResume():当Activity可见且获得用户焦点能交互时系统会调用。 onPause():用来存储持久数据。到这一步是可见但不可交互的,系统会停止动画等消耗CPU的事情。...从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序的优先级降低,有可能被系统收回。 onStop():当Activity被新的Activity完全覆盖不可见时被系统调用。...onDestroy():当Activity(用户调用finish()系统由于内存不足)被系统销毁杀掉时系统调用,(整个生命周期只调用1次)用来释放onCreate()方法中创建的资源,结束线程等。...如在onStart()中注册一个广播接收者监听影响你的UI的改变,onStop()中注销。 (3)Activity的前台生命周期:从调用onResume()到相应的调用onPause()。...客户可以通过 unbindService()方法来关闭这种连接。一个service可以同时和多个客户绑定,当多个客户都解除绑定之后,系统会销毁service。

646100

安卓中activity的生命周期_产品生命周期五个阶段

离开app并且一段时间返回,不会丢失用户的使用进度。 设备发生屏幕旋转时不会crash或者丢失用户的使用进度。 然而,其中只有三个状态是静态的,这三个状态下activity可以存在一段比较长的时间。...例如接收到一个来电,用户切换到另外一个activity,或者是设备屏幕关闭。...activity一旦进入paused状态,系统就会调用activity中的onPause()方法, 该方法中可以停止不应该在暂停过程中执行的操作,暂停视频播放;或者保存那些有可能需要长期保存的信息。...用户我们的app里面执行启动一个新activity的操作,当前activity会在第二个activity被创建stop。- – 果用户点击back按钮,第一个activtiy会被重启。...(下一小节会介绍activity销毁与重新建立时如何使用Bundle来保存其他数据的状态).

62110

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

应用程序中至少包含一个用来处理应用程序的主UI功能的主界面屏幕。这个主界面一般由多个Fragment组成,并由一组次要Activity支持。...41 * Activity状态生命周期结束的时候滴啊用,用来保存UI状态的改变 42 */ 43 } 44 45 //UI状态改变保存到saveInstanceState...71 * 当Activity不可见时,保存所有的编辑或者状态改变,因为调用这个方法,京城可能会被终止 72 */ 73 } 74 75 //完整生存期结束时调用...onDestroy() { 78 super.onDestroy(); 79 /* 80 * 清理所有的资源,包括结束线程、 81 * 关闭数据库连接等...onStart/onStop方法也可以用来注册或者注销那些专门用来更新用户界面的Broadcast Reciver。 · 活动生存期:onResume及其对应的onPause之间的时间。

1.1K100

再看Android官方文档之Activity&Intent

创建与销毁 onCreate onCreate里面尽量少做事情,避免程序启动太久都看不到界面 activityonStart()被调用后开始被用户可见 OnDestroy activity应该在onPause...除非程序onCreate()方法里面就调用了finish()方法,系统通常是执行了onPause()与onStop() 之后再调用onDestroy() 。...暂停与恢复 onPause 为了切换的顺畅要减少OnPause()方法里面的工作量(避免onPause时执行CPU-intensive 的工作,数据到DB等,它会导致切换变得缓慢。...(这点需要注意) 应用不需恢复到Resumed状态前重新初始化那些被保存在内存中的组件,系统activity已经停止,会将Activity对象保存在内存。...当系统调用这个函数,会在Activity被异常Destory时传递 Bundle 对象,这样我们就可以增加额外的信息到Bundle中并保存到系统中。

52260

Android高频面试专题 - 基础篇(一)Activity

并且会调用onSaveInstanceState,我们可以在这里保存当前Activity状态,比如:文本框中用户输入的数据,ListView滚动的位置等。...如果我们不想自己的Activity系统配置发生改变时被销毁再重建,只需清单文件中对应Activity下的android:configChanges中添加对应场景配置项,orientation|screenSize...很少情况下Activity才走“onPause”,网上一些关于对话框弹出Activity会走“onPause”的说法,经过笔者验证,某个Activity内弹出对话框并没有走“onPause”,所以网上大部分这样说法的文章要么是没验证...所以当关闭了ActivityC的时候,它自然就会去找当前任务栈存在的activityA。当前的activity都关闭之后,才会去找另一个任务栈中的activity。...因为使用Bundle的场景大多数为小数据量,我没见过两个Activity之间传递10个以上数据的场景,所以相比之下,在这种情况下使用ArrayMap保存数据操作速度和内存占用上都具有优势,因此使用

1.9K31

【Android基础】Activity的生命周期函数

主Activity: 应用程序的入口一般都是桌面应用程序图标,用户点击应用图标打开应用,这是因为应用程序有主Activity,如果没有主Activity,应用程序就不会在桌面中显示。...在这个方法中你要处理好用户不再需要的资源,比如停止游戏,停止播放器等,并且需要保存用户现在的数据,比如游戏数据(关卡进度),播放数据(播放进度)等,但是不要进行太耗时的操作。...(自动保存用户没有提交的数据,比如编辑的邮件草稿。)...(当Activity暂停的时候释放占用的系统资源,这些资源是用户不再需要的,比如:广播,GPS,或者其他消耗电量的设备。)...总结: 我用了两篇文章来给大家聊聊Activity的生命周期和生命周期方法,主要是理解各个生命周期方法中该做那些事,不该做那些事,这样就能保证UI显示的正确和快速,数据会被保存,该释放的资源会被释放。

71940

Android四大组件完全解析(一)---Activity

也因为如此,你应该在onPause方法中去保存数据(例如,用户的编辑)。...注:Android3.0以前保存数据应该在onPause中进行,因为onSaveInstanceState不是activity的生命周期的一部分,进程生命周期相关中不会被调用。...这也就导致了activity被杀死之前运行完onPause之后可能会调用onSaveInsatanceState(Bundle),并且可以让应用一直等待去保存数据直到运行了onStop方法。...因而一个activity是调用onPause之后调用onResume之前才处于可以被kill的状态。...也就是说,用户编辑之后可以立即保存,不需要其他的步骤。使用这个模型时必须遵循以下两条规则 创建一个新文档时,立即创建他所依赖的数据库条目或者是文件。

1.6K100

《Android应用开发揭秘》连载3

当一个新的屏幕打开,前一个屏幕将会暂停,并保存在历史栈中。用户可以返回到历史栈中的前一个屏幕,当屏幕不再使用时,还可以从历史栈中删除。...简单理解,Activity代表一个用户所能看到的屏幕,主要用于处理应用程序的整体性工作,例如,监听系统事件(按键事件、触摸屏事件等),为用户显示指定的View,启动其他Activity等。...3.Content Provider Android应用能够将它们的数据保存到文件和SQLite数据库中,甚至是任何有效的设备中。...因为Content Provider类实现了一组标准的方法,能够让其他的应用保存读取此内容提供器处理的各种数据类型。 数据是应用的核心。...,UI是一个应用程序的脸面,一个应用程序要想受用户喜爱, UI可不能差。

87020
领券