首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    1.2、Activity的状态保存

    @Override protected void onSaveInstanceState(Bundle outState) { super.onSaveInstanceState(outState...注意:并不是每一次Activity销毁,系统都回去回调onSaveInstanceState()方法,我们是我们自己finish掉该Activity,那么onSaveInstanceState()方法就不会被调用...Activity状态保存的默认机制 然而,即使我们不重写onSaveInstanceState()方法,Activity对于onSaveInstanceState()方法的默认实现,仍然会帮我们恢复某些状态...具体来说,默认的实现会帮我们调用该Activity布局中每个View的onSaveInstanceState()方法。...我们唯一要做的工作就是提供一个惟一的ID(android:ID属性)为每个widget保存其状态。如果一个部件没有一个ID,则系统不能保存其状态。

    1.2K30

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

    outState) {   super.onSaveInstanceState(outState);       Log.d("roamer", "onSaveInstanceState");  ...,那么onSaveInstanceState()方法就不会被调用。...Activity状态保存的默认机制 然而,即使我们不重写onSaveInstanceState()方法,Activity对于onSaveInstanceState()方法的默认实现,仍然会帮我们恢复某些状态...我们唯一要做的工作就是提供一个惟一的ID(android:ID属性)为每个widget保存其状态。如果一个部件没有一个ID,则系统不能保存其状态。...activity的状态保存,我们最主要的问题有三点: 1.onSaveInstanceState这个方法什么时候被执行,因为他不是必须的,不是activity生命周期中必须的流程 onSaveInstanceState

    1.4K20

    Activity详解(二)——异常情况下的生命周期分析

    同时,我们知道onSaveInstanceState和onRestoreInstanceState方法当中,系统为我们做了一定得恢复工作。...关于保存和恢复View层次结构,系统的工作流程是这样的:首先Activity被意外终止时,Activity会调用onSaveInstanceState去保存数据,然后Activity会委托Window去保存数据...针对onSaveInstanceState方法还需要有一点说明,那就是系统只会在Activity即将被销毁并且有机会重新显示的情况下才会调用它。...当Activity正常销毁的时候,系统不会调用onSaveInstanceState,因为被销毁的Activity不可能再次被显示。...和onRestoreInstanceState来存储和恢复数据,如果一个进程中没有四大组件在执行,那么这个进程将很快被系统杀死,比较好的方法是将后台工作放入Service中从而保证进程有一定的优先级,这样就不会轻易地被系统杀死

    2K40

    Activity生命周期-你真的了解吗?

    03-23 00:19:51.324 26457-26457/com.example.david.lifecircle E/TAG: onSaveInstanceState() is invoked!...注意: onSaveInstanceState和onRestoreInstanceState调用时机: 当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState...在屏幕切换之前,系统会销毁activity A,在屏幕切换之后系统又会自动地创建activity A,所以onSaveInstanceState一定会被执行。...总而言之,onSaveInstanceState的调用遵循一个重要原则,即当系统“未经你许可”时销毁了你的activity,则onSaveInstanceState会被系统调用,这是系统的责任,因为它必须要提供一个机会让你保存你的数据...那么这个进程就会很快被杀死,因此一些后台工作不适合脱离四大组件而独立运行在后台中,否则很容易被杀死。一般是将后台工作放入Service中从而保证进程有一定的优先级,这样才不会被系统轻易杀死。

    1.2K20

    不需要再手写 onSaveInstanceState 了,因为你的时间非常值钱

    如果你是一个有经验的 Android 程序员,那么你肯定手写过许多 onSaveInstanceState 以及 onRestoreInstanceState 方法用来保持 Activity 的状态,因为...重写 Activity 中的 onSaveInstanceState 方法 是 Google 推荐的用来保持 Activity 状态的做法。...Google 推荐的最佳实践 onSaveInstanceState 方法会提供给我们一个 Bundle 对象用来保存我们想保存的值,但是 Bundle 存储是基于 key - value 这样一个形式...@Overridepublic void onSaveInstanceState(Bundle savedInstanceState) { // Save the user's current game...做了一点微小的工作,如果我帮你节省下来了喝一杯咖啡的时间,希望你可以帮我点一个 Star,谢谢 :) SaveState Github 地址:https://github.com/PrototypeZ/

    43110

    Android技能树 — Activity小结

    在Activity销毁的时候先通过onSaveInstanceState的Bundle参数里面,存储一些内容,然后在重建时候调用onRestoreInstanceState方法传递刚才那个Bundle,...(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("data", "...横屏 我们知道在重写onSaveInstanceState和onRestoreInstanceState的时候,默认代码是这样的: @Override protected void onSaveInstanceState...简单来说:super.onSaveInstanceState(outState);它会帮我们保存Activity的相关视图,然后分别调用每个View的onSaveInstanceState方法,比如EditText...我们可以看到后台Activity很容易被杀死,所以一些后台工作更适合放到Service中去,这样保证优先级。不会轻易被系统杀死。

    71610

    Android技能树 — Activity小结

    在Activity销毁的时候先通过onSaveInstanceState的Bundle参数里面,存储一些内容,然后在重建时候调用onRestoreInstanceState方法传递刚才那个Bundle,...(Bundle outState) { super.onSaveInstanceState(outState); outState.putString("data", "...竖屏 横屏 我们知道在重写onSaveInstanceState和onRestoreInstanceState的时候,默认代码是这样的: @Override protected void onSaveInstanceState...简单来说:super.onSaveInstanceState(outState);它会帮我们保存Activity的相关视图,然后分别调用每个View的onSaveInstanceState方法,比如EditText...我们可以看到后台Activity很容易被杀死,所以一些后台工作更适合放到Service中去,这样保证优先级。不会轻易被系统杀死。

    43110

    Android 进阶解密笔记-插件化

    它本身的作用是进行Activity的一些初始化工作,比如使用setContentView`加载布局,对一些控件和变量进行初始化等。但也有很多人将很多与初始化无关的代码放在这,其实这是不规范的。...这个阶段的主要工作也是做一些资源的回收工作。 onDestroy:destroy表示毁灭,这个阶段Activity被销毁,不可见,我们可以将还没释放的资源释放,以及进行一些回收工作。...onSaveInstanceState和onRestoreInstanceState 两者执行时间 当targetSdkVersion小于3时onSaveInstanceState是在onPause方法中调用的...而onRestoreInstanceState是在onStart之后、onResume之前调用的** onSaveInstanceState调用 在Activity被覆盖或退居后台之后,系统资源不足将其杀死...onSaveInstanceState的调用顺序是在onStop中调用。

    1K10

    第1章-Activity的生命周期和启动模式(上)

    start — stop resume — pause 注意点: A 启动 B 如果B是透明的Activity,那么A的onStop不会被调用 异常状态 Activity的销毁与重建涉及到这两方法: onSaveInstanceState...而onRestoreInstanceState则是重建的时候被调用 调用时机 onSaveInstanceState 在onStop之前调用,而不一定在onPause之后 onRestoreInstanceState...之后,onResume之前 所以,大致的完整的生命周期是这样的: onCreate onRestart onStart onRestoreInstanceState onResume onPause onSaveInstanceState...onStop onDestroy PS:onSaveInstanceState如下情况会调用: 启动了新的Activity 按了Home键等等 另外:可以在onCreate里判断bundle是否为null...有机会以后讲 扯远了,保存和恢复View的层次结构,系统的工作流程是这样子的: Activity⇒Window⇒DecorView⇒ContentView⇒View 一层一层委托保存恢复状态 Activity

    63240

    【Java】已解决:java.util.zip.DataFormatException

    当解压缩的数据格式不符合预期时,Java的java.util.zip包会抛出此异常。本文将详细分析该异常的背景、可能的原因、错误和正确的代码示例,并给出相关的注意事项,帮助您解决这一问题。...如果解压缩时提供的数据格式不正确(如未按照正确的压缩方式压缩,或数据在传输中被截断),那么就可能会出现DataFormatException。...e.printStackTrace(); } finally { inflater.end(); } } 错误分析: 可能的压缩数据compressedData未按正确的格式传递给...Inflater.inflate()方法抛出了DataFormatException,表明数据格式不符合预期。...四、正确代码示例 为了正确解压缩数据并避免DataFormatException,需要确保传递给Inflater的数据是有效的,并且符合预期的格式。

    63410

    Jmeter必知利器-临界部分控制器

    相信大家在使用开源工具Jmeter 进行接口并发测试时,经常回有混合场景多个接口同时执行的场景,如果我们将一个链条的接口放在线程组下同时执行时,我们使用的 察看结果数 监听器看到的接口执行顺序是混乱的 1 场景预期顺序剖析...例如当前需要将用户登录--生成订单这个场景,进行设置5个并发、持续执行1min压测一下 预期:正常执行顺序就是A-B-C-D / A-B-C-D .......按照预期执行 5 次 每个接口执行1min 结果:符合我们的预期 实际:未加任何处理该场景在察看结果数看到的可能是 A-A-A-B-C .. A-A-B-B-B-B......顺序混乱的执行5 次 ,每个接口执行 1min 结果:完全不符合我们的预期 2 接口实战案例 2.1 以下就是未添加任何处理的混合场景接口,执行的顺序未按照业务正常顺序执行,我们需要解决这个问题,需要使用到我们的逻辑控制器

    4K30
    领券