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

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

阅读本文可了解 Activity如何保存临时数据 & 状态 Activity如何恢复临时数据 & 状态 Activity如何保存临时数据 & 状态 1....重新创建的时候自动的恢复(只有在为该UI提供了唯一ID后才起作用) 若需复写该方法从而存储额外的状态信息时,应先调用父类的onSaveInstanceState()(因为默认的onSaveInstanceState...()帮助UI存储它的状态) 只使用该方法记录Activity的瞬间状态(UI的状态),而不是去存储持久化数据,因为onSaveInstanceState()调用时机不确定性;可使用 onPause...()存储 持久化数据 Activity如何恢复临时数据 & 状态 1....恢复,讲解完毕。

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

    1.2、Activity状态保存

    Activity状态保存的基本使用 学习Activity的生命周期,我们知道,当Activity进入到paused或者stopped状态后,这个Activity状态仍然保存着。...然而,如果Activity进入到了后台,系统为了回收内存,有可能会去销毁该Activity,那么,当用户通过导航返回的时候,系统就不能简单的去恢复这个Activity,而是会重新创建这个Activity...Activity状态保存的默认机制 然而,即使我们不重写onSaveInstanceState()方法,Activity对于onSaveInstanceState()方法的默认实现,仍然会帮我们恢复某些状态...当然,如果在某些特殊的情况下,你不需要某个View自动保存和恢复他的状态,那么你可以设置View的属性android:saveEnabled为false,或者调用setSaveEnabled()方法。...注意:因为onSaveInstnceState()方法并不是Activity销毁前一定被执行,所以你最好仅仅保存与Activity状态相关的信息(UI状态)。

    85530

    Activity入门—Activity生命周期及三种状态+案例

    Activity生命周期分为三种状态。运行状态,停止状态,暂停状态。 一.运行状态activity在最前端时,它是可见的,有焦点的,可以用来处理用户的常见的操作。如:点击,双击,长按事件等。...系统最不愿回收的就是出于此种状态的活动,这会带来非常差的用户体验。 二.暂停状态 activity依然可见,但它不再拥有焦点,即用户对它的操作没有实际意义。...三.停止状态 activity完全不可见,但仍然保留着当前状态和成员信息。如果当系统内存不足,其他地方需要内存时,它会被系统回收。...3 onResume( )在onstart( )方法中后创建 可以与用户进行交互 此时进入activity的第一个状态 Resumed状态即运行状态。...当activity被整个覆盖时进入该状态 6 onDestroy( )在activity被销毁前所调用的最后一个方法,当进程终止时会出现这种情况 7 onRestart( ) 当activity从停止状态重新启动时调用

    4K10

    Activity状态和生命周期方法

    随着不同应用的运行,每个Activity都有可能从活动状态转入非活动状态,也可能从非活动状态转入活动状态。...但当内存不足时,这个暂停状态Activity可能会被杀死。 03停止状态(Stopped) 当Activity完全不可见时,它就处于停止状态,但仍然保留着当前状态和成员信息。...04销毁状态(Killed) 当Activity运行结束,或Activity所在的进程结束时,这种状态称为销毁状态,也叫非活动状态。...二、 Activity生命周期 Activity从一种状态转变到另一种状态时会触发一些事件,执行一些回调方法来通知状态的变化,这就是Activity的生命周期。...onRestart():重新启动 Activity 时被回调。 onResume():恢复 Activity 时被回调。在onStart()方法后一定会回调 onResume()方法。

    1.9K60

    activity生命周期_activity的生命周期有哪些状态

    一般情况下,当当前Activity从不可见重新变为可见状态时,onRestart就会被调用。 onResume:表示Activity已经可见了,并且出现在前台并开始活动。...异常情况分两种: 1、资源相关的系统配置发生改变导致Activity被杀死并重新创建 2、资源内存不足导致低优先级的Activity被杀死 针对第一种,比如说当前Activity处于竖屏状态,如果突然旋转屏幕...来保存当前Activity状态。...因此,我们可以通过onRestoreInstanceState和onCreate方法来判断Activity是否被重建了,如果被重建了,那么我们就可以取出之前保存的数据并恢复,从时序上来说,onRestoreInstanceState...针对第二种情况,其数据存储和恢复过程和情况一完全一致。

    70410

    【Android 应用开发】Activity 状态保存 OnSaveInstanceState参数解析

    状态保存方法示例 package com.example.octopus_saveinstance; import android.app.Activity; import android.os.Bundle...声明周期结束的时候, 需要保存 Activity 状态的时候, 会将要保存的数据使用键值对的形式 保存在 Bundle 对象中; -- 恢复数据 : 在 Activity 的 onCreate()方法...(outState) : 该默认的方法是实现 组件状态保存的; (3) onRestoreInstanceState(Bundle savedInstanceState) 方法 方法回调时机 : 在 Activity...被系统销毁之后 恢复 Activity 时被调用, 只有销毁了之后重建的时候才调用, 如果内存充足, 系统没有销毁这个 Activity, 就不需要调用; -- Bundle 对象传递 : 该方法保存的...Bundle 对象在 Activity 恢复的时候也会通过参数传递到 onCreate() 方法中; -- 位于生命周期位置吧 : 该方法在 onResume() 方法之前保存信息;  二 代码示例

    39020

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

    ,当Activity进入到paused或者stopped状态后,这个Activity状态仍然保存着。...然而,如果Activity进入到了后台,系统为了回收内存,有可能会去销毁该Activity,那么,当用户通过导航返回的时候,系统就不能简单的去恢复这个Activity,而是会重新创建这个Activity...Activity状态保存的默认机制 然而,即使我们不重写onSaveInstanceState()方法,Activity对于onSaveInstanceState()方法的默认实现,仍然会帮我们恢复某些状态...当然,如果在某些特殊的情况下,你不需要某个View自动保存和恢复他的状态,那么你可以设置View的属性android:saveEnabled为false,或者调用setSaveEnabled()方法。...注意:因为onSaveInstnceState()方法并不是Activity销毁前一定被执行,所以你最好仅仅保存与Activity状态相关的信息(UI状态)。

    1K20

    activity生命周期有几种状态_activity生命周期七种方法

    activity activity从开始到结束的四个状态activity的生命周期。 activity的进程优先级。...activity的四个状态 关于activity的四个状态: running-poused-stopped-killed running->当前显示在屏幕的activity(位于任务栈的顶部),用户可见状态...当一个Activity处于暂停状态或停止状态时就随处可能进入死亡状态,因为系统可能因内存不足而强行结束该Activity。...恢复 Activity 时被调用, 只有销毁了之后重建的时候才调用, 如果内存充足, 系统没有销毁这个 Activity, 就不需要调用; – Bundle 对象传递 : 该方法保存的 Bundle...对象在 Activity 恢复的时候也会通过参数传递到 onCreate() 方法中; activity的进程优先级。

    1.2K10

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

    都知道栈是先进后出的原则,那么当用户按Back键时,当前的这个Activity销毁,前一个Activity又一次恢复。...不管在该方法里面进行不论什么操作,都须要较高速完毕,由于假设它不返回的话,下一个 activity 将无法恢复出来。...可能会由于当前 activity 正在被销毁,或还有一个 activity (已经存在的activity 或新的 activity )已经恢复了正准备覆盖它,而调用该方法。...Activity的执行状态,请注意下面几点: 1)因为activity 对象被暂停或停止时,它仍然保留在内存里面,关于它的成员信息和当前状态都是活动的,所以此时能够保存Activity状态,从而使用户所作的...方法恢复出来。

    39410

    ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

    我如何高效地使用 ViewModel 来保存和恢复 UI 状态? 简而言之,你可以混合混合 ViewModels、 onSaveInstanceState()、本地持久化一起使用。...注意,很多 UI 数据会自动地被保存和恢复: “该方法的默认实现保存了关于 activity 的视图层次状态的临时信息,例如 EditText 控件中的文本或者 ListView 控件中的滚动条位置。”...这同样也是使 activity 恢复到当前状态所需的所有数据。...这是一个良好的保存和恢复 activity 状态的方法。基于你的 activity 的实现,你可能根本不需要 onSaveInstanceState()。...为了高效的保存和恢复 UI 状态,可以混合使用 持久化、onSaveInstanceState() 和 ViewModel。

    3.8K30

    ViewModel:持久化、onSaveInstanceState()、UI 状态恢复和 Loader

    我如何高效地使用 ViewModel 来保存和恢复 UI 状态? 简而言之,你可以混合混合 ViewModels、 onSaveInstanceState()、本地持久化一起使用。...注意,很多 UI 数据会自动地被保存和恢复: “该方法的默认实现保存了关于 activity 的视图层次状态的临时信息,例如 EditText 控件中的文本或者 ListView 控件中的滚动条位置。”...这同样也是使 activity 恢复到当前状态所需的所有数据。...这是一个良好的保存和恢复 activity 状态的方法。基于你的 activity 的实现,你可能根本不需要 onSaveInstanceState()。...为了高效的保存和恢复 UI 状态,可以混合使用 持久化、onSaveInstanceState() 和 ViewModel。

    1K20
    领券