展开

关键词

Activity和生命周期方法

随着不同应用的运行,每个Activity都有可能从活动转入非活动,也可能从非活动转入活动。 但当内存不足时,这个暂停Activity可能会被杀死。 03停止(Stopped) 当Activity完全不可见时,它就处于停止,但仍然保留着当前和成员信息。 04销毁(Killed) 当Activity运行结束,或Activity所在的进程结束时,这种称为销毁,也叫非活动。 关于Activity的这四种,是可以相互转化的,如下图所示。 ? 值得注意的时这四种中,运行和暂停是可见的,停止和销毁是不可见的。 二、 Activity生命周期 Activity从一种转变到另一种时会触发一些事件,执行一些回调方法来通知的变化,这就是Activity的生命周期。

82960

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

阅读本文可了解 Activity如何保存临时数据 & Activity如何恢复临时数据 & Activity如何保存临时数据 & 1. 重新创建的时候自动的恢复(只有在为该UI提供了唯一ID后才起作用) 若需复写该方法从而存储额外的信息时,应先调用父类的onSaveInstanceState()(因为默认的onSaveInstanceState ()帮助UI存储它的) 只使用该方法记录Activity的瞬间(UI的),而不是去存储持久化数据,因为onSaveInstanceState()调用时机不确定性;可使用 onPause ()存储 持久化数据 Activity如何恢复临时数据 & 1. ()不会被执行 onSaveInstanceState的bundle参数会传递到onCreate方法中,可选择在onCreate()中做数据还原 至此,关于Activity的临时数据 & 保存 &

1.2K30
  • 广告
    关闭

    90+款云产品免费体验

    提供包括云服务器,云数据库在内的90+款云计算产品。打造一站式的云产品试用服务,助力开发者和企业零门槛上云。

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

    android开发_Intent高级学习(保存Activity)

    Intent高级学习(保存Activity) New Android Project-> Project name:Activity Build Target:Android 2.2 Application -- 注册SecondActivity类,显示名称为:"@string/secondActivity"中的值 --> 2 <activity android:name=".SecondActivity " 3 android:label="@string/secondActivity"> 4 </activity> 4、编辑MainActivity.java 文件 1 public class MainActivity extends Activity { 2 /* 定义一个字符串常量content */ 3 public static 保存,在MainActivity被覆盖的时候,Activity会自动调用 25 //saveInstanceState()方法,保存被覆盖的Activity类中的相关信息 26 if

    28020

    1.2、Activity保存

    Activity保存的基本使用 学习Activity的生命周期,我们知道,当Activity进入到paused或者stopped后,这个Activity仍然保存着。 因为这个Activity对象仍然保存在内存中,它的所有信息和仍然是存在的,当这个Activity再次返回到前台是,它仍然保持着离开时候的样子。 但是对于普通用户来说,他并不知道系统销毁了Activity并重新创建它,因此,可能希望该Activity保存和他离开时候一样的Activity保存的默认机制 然而,即使我们不重写onSaveInstanceState()方法,Activity对于onSaveInstanceState()方法的默认实现,仍然会帮我们恢复某些 注意:因为onSaveInstnceState()方法并不是Activity销毁前一定被执行,所以你最好仅仅保存与Activity相关的信息(UI)。

    27630

    Activity isFinishing()判断Activity实例

    Activity中调用finish()或按返回键退出时,若有资源被其他对象引用不能释放(如context被某个单例对象引用或正在线程中被使用),则activity不会被调用onDestory()方法。 isFinishing() 可用来判断Activity是否处于活跃(false)还是等待回收(true)。 接口,然后 findViewById().setOnClickListenr(this) 如果,这个回调接口设置到了一个静对象(单例模式),当 activity finish() 的时候(按返回键,回到桌面 ),则activity 不会被调用 onDestroy() ,原因可能是 activity 对象还在被引用! 以上这篇Activity isFinishing()判断Activity实例就是小编分享给大家的全部内容了,希望能给大家一个参考。

    46120

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

    假设能捕获到 activity 的话,这种方法传递进来的 Bundle 对象将存放了 activity 当前的。 调用该方法后通常会调用 onStart() 方法。 Activity的执行。 请注意下面几点: 1)因为activity 对象被暂停或停止时,它仍然保留在内存里面,关于它的成员信息和当前都是活动的,所以此时能够保存Activity,从而使用户所作的Activity的更改保存在内存中 2) 当系统回收内存而将Activity销毁时,就无法保存其,所以须要调用onSaveInstanceState()方法来实现的保存 3) 非常多情况并不须要保持信息,比方按下返回键直接关闭程序 所以你应该仅仅是用它来保存一些 activity 的转换过程(即 UI 的),而不能用来保存永久性数据。但你能够用 onPause 方法在用户离开 activity 时来保存永久性数据。

    9820

    Android基础部分再学习---activity保存

    ,当Activity进入到paused或者stopped后,这个Activity仍然保存着。 因为这个Activity对象仍然保存在内存中,它的所有信息和仍然是存在的,当这个Activity再次返回到前台是,它仍然保持着离开时候的样子。 但是对于普通用户来说,他并不知道系统销毁了Activity并重新创建它,因此,可能希望该Activity保存和他离开时候一样的Activity保存的默认机制 然而,即使我们不重写onSaveInstanceState()方法,Activity对于onSaveInstanceState()方法的默认实现,仍然会帮我们恢复某些 注意:因为onSaveInstnceState()方法并不是Activity销毁前一定被执行,所以你最好仅仅保存与Activity相关的信息(UI)。

    47220

    Android 针对单个Activity设置栏颜色

    29950

    教你自己写Android第三方库

    2,编写库库代码 这里比较简单,就是实现一个简单的沉侵式栏。沉侵式栏默认支持到4.4版本(5.0以后是系统默认支持的,对于5.0之前的是通过绘制一个和栏大小相等的矩形)。 (Activity activity, int color) { setColor(activity, color, 0); } /** * 设置栏颜色( ); } /** * 使栏半透明 * 适用于图片作为背景的界面,此时需要图片填充到栏 */ public static void setTranslucent * 使栏半透明 * 适用于图片作为背景的界面,此时需要图片填充到栏 */ public static void setTranslucent(Activity activity * 为DrawerLayout 布局设置栏变色 */ public static void setColorForDrawerLayout(Activity activity, DrawerLayout

    95760

    从0系统学Android-2.4 Activity 的生命周期

    1.运行 当一个 Activity 处于返回栈的栈顶的时候,这个时候的 Activity 就是运行。系统是最不愿意回收这种Activity 的。 2.暂停 当一个 Activity 不处于栈顶但是仍然可见的时候,这种称为暂停。不处于栈顶仍然可见是因为很多 Activity 不一定是占满全屏的,比如对话框形式的 Activity。 这种Activity 系统也是不愿意回收的,除非内存极低的情况。 3.停止Activity 不处于栈顶并且不可见的时候,这种称为停止。 这种下系统仍然会保留 Activity 的相应和变量。但是当内存不太足,也是可能会被回收的。 4.销毁 Activity 从栈中移除,这个时候就称为销毁。 onDestroy() 这个方法在 Activity 被销毁 前 调用,之后 Activity就处于销毁

    16720

    记录一下笔者关于的一些相关认知。 1 在计算机领域,[1]指的是一个系统被设计用来记住之前的事件或用户交互,那么就称之为有的系统,系统记录的信息则就是。 3 无[3]并不是说我们彻底不要了,而仅仅只是说在双方通信时:从客户端到服务器的每次请求都必须包含理解该请求所必须的所有信息,不能利用服务器存储会话的上下文信息,会话全部保存在客户端 但是无也有相应的缺点,由于服务器不能保持会话数据,则会造成在每一次请求中发送大量重复的数据,可能会降低网络性能。 3.2 有的协议 TCP协议[4]是有的协议,通信双方事先需要实现建立连接,维持通信的。 但是认证和授权都是有的行为,也就是会产生出来,OIDC会产生认证的结果(id_token),授权会得到授权的结果(access_token),然后拿着这些*_token来维持后续的交互的

    15520

    Android 入门--Activity

    Activity 每个 Activity 在其生命周期中最多可能会有 4 中 运行 当一个 Activity 位于返回栈的栈顶的时候,这个时候这个 Activity 就处于运行。 停止 当一个 Activity 不再处于栈顶位置,而且完全看不到的时候,就进入了停止了。 销毁 当一个 Activity 从返回栈移除后就变成销毁了,系统倾向回收处于这种ActivityActivity 的生命周期 先放上一张最经典的图 ? onStart() Activity 由不可见变为可见。 onRestart() 这个方法在 Activity 由停止变为运行之前调用,也就是 Activity 被重新启动了。

    22520

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

    当一个新Activity启动,它就会变成Activity,并移到栈顶,当返回到前一个Activity,前台Activity被关闭,那么站总的下一个Activity就会移动到栈顶,变成活动。 2、Activity   随着Activity的创建和销毁,从栈中移进移出的过程中他们经历了如下4种可能的: · 活动:当一个Activity处于栈顶是,它是可见的、具有焦点的前台Activity · 暂停Activity可见,但没有焦点,不能接受用户输入事件。(例如:当一个透明的或者非全屏的Activity位于该Activity之前时) · 停止Activity不可见。 此时,Activity仍然会保留在内存中,保存所有信息,然而当系统的其他地方要求使用使用内存时,会优先终止此类Activity。 · 非活动Activity被终止。 此时Activity已经从栈中移除了。 3、监控改变   为了保证Activity可以对改变做出反应,Android提供了一系列的回调方法,当Activity改变时它们就会被触发。

    336100

    详解Android中的四大组件之一:Activity详解

    Activity详解.png activity的生命周期 ? Activity的生命周期.png activity的四种 ? Activity的四种.png running:正在运行,处于活动,用户可以点击屏幕,是将activity处于栈顶的。 paused:暂停,处于失去焦点的时候,处于paused,可能是被如弹框一样遮盖,被通明的activity的放置到栈顶,paused一起都存在。 stopped:处于stopped,是当前的activity被遮盖,是完全遮挡的那种,覆盖屏幕,一起的信息还是存在的。 killed:activity被销毁,回收,一切的信息不存在了。 Home 整个activity处于停止,可见,不能与用户交互onPause()->整个activity被停止,被完全覆盖,onStop() 回到activity 处于由不可见到可见的onRestart

    35230

    Android开发:5分钟解析Activity&Fragment生命周期

    调用finsh() Activity整个生命周期的完全解读 启动Activity 系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行 当前Activity被其他Activity覆盖一部分其上或被锁屏 系统会调用onPause方法,暂停当前Activity的执行 当前Activity由被覆盖(一部分)回到前台或解锁屏 系统会调用 onResume方法,再次进入运行。 当前Activity处于被覆盖或者后台不可见,当更高优先级的apps需要内存,系统内存不足 系统就会杀死当前Activity 而后用户退回当前Activity 再次调用onCreate方法 、onStart方法、onResume方法,进入运行

    80130

    android 栈

    image.png 每一个活动( Activity )都处于某一个,对于开发者来说,是无法控制其应用程序处于某一个的,这些均由系统来完成。 Activity栈 上面提到开发者是无法控制Activity的,那Activity又是按照何种逻辑来运作的呢?这就要知道 Activity 栈。 如果用户使用后退按钮返回的话,或者前台的Activity结束,在栈上的Activity将会移上来并变为活动Activity 一般认为Activity有以下四种: 活动的:当一个Activity在栈顶,它是可视的、有焦点、可接受用户输入的。 当一个Activity停止后,一个很重要的步骤是要保存数据和当前UI。一旦一个Activity退出或关闭了,它将变为待用。 待用: 在一个Activity被杀死后和被装在前,它是待用的。

    11240

    Activity 生命周期及其栈管理方式

    单个 Activity 的生命周期以及生命周期方法 根据 Android 文档, 每一个 Activity 都有四个, 它们分别是: 当 Activity 位于屏幕的最前面(栈顶),称之为 运行 ; 当 Activity 完全不可见时, 称之为 停止 , 这时 Activity 依然保持其以及成员信息, 不过由于此时 Activity 对用户不可见, 当系统其它地方需要内存时, 经常会被结束 ; 当 Activity 由不可见变成可见时, 称之为 重启 , 这时 Activity 必须迅速恢复它以前的。 下图表示 Activity 在这四种之间切换的生命周期, 以及切换时调用的对应的方法: ? 这个方法还有一个 Bundle 参数, 如果这个 Activity 之前由冻结的, 这个将包含在里面。 之后, 通常会接着调用 onStart() 方法。

    43920

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

    处于paused的activity也处于存活(该activity保留了所有的和成员信息,并仍旧和wiindowmanager绑定),但是当内存不足时,处于pausedactivity很有可能被系统杀死 此时activity对用户不可见且没有焦点,但是仍旧保存有所有和成员信息。当其他地方需要内存时,系统会将处于stoppedactivity杀死。 因为activity必须知道如何如保存他们的以及如何根据保存的重新创建他们,所以,快捷的方法就是提供一个新的配置来restart一个activity。 ,所以应该主动去保存activity。 如果是直接创建的activity实例,则在按下BACK按键时会返回先前activity,但如果是通过intent去重用一个已经存在的activity,则在按下返回键时不会返回重用之前的,只能返回重用之后的

    1K100

    Android栏白底黑字的示例代码

    我:Android4.4以上系统版本可以修改栏颜色,但是只有小米的MIUI、魅族的Flyme和Android6.0以上系统可以把栏文字和图标换成深色,其他的系统栏文字都是白色的,换成浅色背景的话就看不到了 6.0原生深色栏字体模式.png 网上有关栏颜色设置的文章很多,下面这段代码是我用的栏设置工具类,算是一个总结吧。 在设置栏全透明后,整个activity布局都会上移充满整个屏幕,如果你不想让布局上移的话就需要在根布局设置 android:fitsSystemWindows="true" 以下为我的栏设置工具类 } } /** *栏亮色模式,设置栏黑色文字、图标, * 适配4.4以上版本MIUIV、Flyme和6.0以上版本其他Android * @param activity * @return 1: ,清除MIUI、flyme或6.0以上版本栏黑色文字、图标 */ public static void StatusBarDarkMode(Activity activity,int type){

    23221

    从0开始做播放器---Android生命周期

    image.png 1.启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行。 3.当前Activity由被覆盖回到前台或解锁屏:系统会调用onResume方法,再次进入运行。 4.当前Activity转到新的Activity界面或按Home键回到主屏,自身退居后台:系统会先调用onPause方法,然后调用onStop方法,进入停滞。 6.当前Activity处于被覆盖或者后台不可见,即第2步和第4步,系统内存不足,杀死当前Activity,而后用户退回当前Activity:再次调用onCreate方法、onStart方法、onResume 方法,进入运行

    17330

    扫码关注云+社区

    领取腾讯云代金券