学习
实践
活动
专区
工具
TVP
写文章

1.2、Activity状态保存

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

35530

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

阅读本文可了解 Activity如何保存临时数据 & 状态 Activity如何恢复临时数据 & 状态 Activity如何保存临时数据 & 状态 1. ()帮助UI存储它的状态) 只使用该方法记录Activity的瞬间状态(UI的状态),而不是去存储持久化数据,因为onSaveInstanceState()调用时机不确定性;可使用 onPause ()存储 持久化数据 Activity如何恢复临时数据 & 状态 1. A时,用户按下HOME键回到主界面,然后用户紧接着又返回到Activity A,此时Activity A一般不会因为内存的原因被系统销毁,故Activity A的onRestoreInstanceState ()不会被执行 onSaveInstanceState的bundle参数会传递到onCreate方法中,可选择在onCreate()中做数据还原 至此,关于Activity的临时数据 & 状态 保存 &

1.8K30
  • 广告
    关闭

    新年·上云精选

    热卖云产品年终特惠,2核2G轻量应用服务器7.33元/月起,更多上云必备产品助力您轻松上云

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

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

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

    60420

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

    请注意下面几点: 1)因为activity 对象被暂停或停止时,它仍然保留在内存里面,关于它的成员信息和当前状态都是活动的,所以此时能够保存Activity状态,从而使用户所作的Activity的更改保存在内存中 2) 当系统回收内存而将Activity销毁时,就无法保存状态,所以须要调用onSaveInstanceState()方法来实现状态保存 3) 非常多情况并不须要保持状态信息,比方按下返回键直接关闭程序 所以你应该仅仅是用它来保存一些 activity 的转换过程状态(即 UI 的状态),而不能用来保存永久性数据。但你能够用 onPause 方法在用户离开 activity 时来保存永久性数据。 比方须要保存到数据库的数据。 有一个非常好的方法能够用来检验应用程序保存状态的能力。就是简单地旋转你的设备来改变屏幕的方向。 由于这个原因,你的 activity 能否在其又一次创建时完毕保存状态就显得尤为重要,由于用户常常会在使用应用程序时旋转屏幕的。

    29920

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

    Activity的执行状态,请注意下面几点: 1)因为activity 对象被暂停或停止时,它仍然保留在内存里面,关于它的成员信息和当前状态都是活动的,所以此时能够保存Activity状态,从而使用户所作的 Activity的更改保存在内存中 2) 当系统回收内存而将Activity销毁时,就无法保存状态,所以须要调用onSaveInstanceState()方法来实现状态保存 3) 非常多情况并不须要保持状态信息 注:由于 onSaveInstanceState 方法不一定会被调用,所以你应该仅仅是用它来保存一些 activity 的转换过程状态(即 UI 的状态),而不能用来保存永久性数据。 有一个非常好的方法能够用来检验应用程序保存状态的能力,就是简单地旋转你的设备来改变屏幕的方向。 由于这个原因,你的 activity 能否在其又一次创建时完毕保存状态就显得尤为重要,由于用户常常会在使用应用程序时旋转屏幕的。

    11410

    Android 应用保存状态

    Android 应用保存状态 最近开发的 Android 应用中需要添加保存用户状态的功能, 经过查阅 Android 的文档, 保存用户状态的几种方法如下: 1、 使用 Bundle 保存界面状态 Android 最先找到的文档就是通过 Activity 的 onSaveInstanceState 和 onRestoreInstanceState 方法来保存用户状态, 虽然最终测试发现这种方法不是肯靠谱, 还是记录下来了 onSaveInstanceState 保存状态 当系统销毁 Android 程序, 进行内存回收时, 会调用 Activity 的 onSaveInstanceState 方法, 传入一个 Bundle Activity 恢复状态 对于 Activity 来说, 可以在 onCreate 方法中读取保存状态, 代码如下: protected override void OnCreate(Bundle 保存状态 不管是 Activity 还是 Fragment , 都可以通过重写 onPause 方法来保存状态, 代码如下: protected override void OnPause() {

    45220

    vue页面控制权限,vuex刷新保存状态、登录状态保存

    image to.meta.requireAuth为true就跳去登录页面登录,否则就直接到要访问的页面 2、vuex页面F5刷新后维持刷新前的状态不变 首先在store的index.js中,state ,增加页面要保存的变量,并且将它们的值和sessionStorage里面的绑定 ? image 在路由的钩子函数里面可以这样将变量取回来,那样页面刷新后,也能将刷新前的状态保持 ? image 3、登录状态保存 我们在网页中,常常有一个功能,就是像下图那样,勾选后十天内免登录,也就是记住登录状态 这个较上面的功能有一个不一样的地方就是,上面的刷新,假如我是登录状态,我将浏览器关闭之后再打开 image 首先,一样需要在store的index.js中,state,增加页面要保存的变量,并且将它们的值和localStorage里面的绑定 ?

    49510

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

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

    14410

    Activity状态和生命周期方法

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

    1K60

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

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

    14910

    登录页【利用token登录状态保存

    基于vue、Element-UI的后台管理系统登录页的登录状态保存 通过这篇清晰思路以及掌握探索方法才是最重要的欧 利用token登录状态保存 1. 基础信息 2. 思考过程 2.1 利用token登录状态保存思路 2.2 确定登录逻辑所在位置 2.3目标 实现方法 1. 基础信息 cookie,session,token的区别 Vue Router 2. 思考过程 2.1 利用token登录状态保存思路 2.2 确定登录逻辑所在位置 router/index.js【页面path情况】 当我们只是复制黄色框框部分网址到新开浏览器时,会发现黄色框框会再去自动补齐后面部分网址 token) => { state.token = token '注意'//要登录进入首页进行console查看打印,会发现此时已经有token的存在,而当我们重新复制地址加载页面时,却无法保存登录 对此做法如下【当然其他孩子可以通过上面思路寻找到自己项目问题的所在】 1处await注释掉,此时可以实现利用网址再登陆,登陆状态是有保留的 不过因为dashboard页是利用this.

    11930

    关于React中状态保存的研究

    在使用react搭配react-router做应用的时候,你可能遇到这样的问题,当我从第一个页面过渡到第二个页面,然后返回之后,发现之前的页面的状态全部不见了,即回到了初始的状态。 因此,在这种情况下,保存之前的状态显得尤为亟待解决,下面是自己实践出来的几种方法,做一下分享,同时希望和各位一起探讨,看能不能有什么更好的办法。 可以看到,当从详情页面返回时,点击的激活状态依旧可以保存,但是列表滚动的高度并不能够保存,关于高度的恢复在下面会讲到。 解决方案二:当前页面弹窗 不占用路由,在当前页面直接已弹窗的形式加载详情页面。 看上去效果十分好,既能保存状态,也能保存滚动条的高度。 解决方案三:本地存储/redux数据仓库/参数传递 我把这三种方案归结为一种,因为实际上是在离开列表组件的时候保存当前的状态,然后在回到页面的时候根据之前保存状态来进行现场恢复而已。

    1.3K40

    ViewPager中Fragment状态保存的哪些事

    (key) - (by activityViewModel) RecyclerView - (data = activityViewModel.data[key]) 如上所示,我们有一个 Activity 其内部有一个名为 mSavedState 的List,用于保存我们的 Fragment状态 ,那这个 mSavedState 又会在哪里被调用呢? 的状态信息,并且以下标的方式进行了保存,当我们在滑动 ViewPager 时,其会加载并初始化指定 position 所对应 Fragment ,并将缓存的 Fragment 的状态信息 set 进去 Fragment部分 通过上面的方式,我们可以简单的知道 ViewPager 是如何帮我们进行状态还原与保存,那 Fragment 到底是在什么时候去使用这个状态呢? getItem() 初始化Fragment时,其会将之前保存状态重新 set 给我们的 Fragment 实例。

    28720

    Cookies+Session保存用户登陆状态

    Cookies+Session保存用户登陆状态的验证方式是纯的Session方式,虽然设置了超时时间,但是好像登陆状态经常会动不动就丢失,导致客户抱怨不断,今天仔细的考虑了一下,决定采用Cookies 跟Session结合的方式来判断用户的登陆状态 代码如下: 1、用户登陆代码 HttpContext.Current.Session.Abandon(); //清空当前所有的Session HttpCookie DateTime.Now.AddHours(1);//可不设置或者设置成0(代表在关闭浏览器后,立即失效) HttpContext.Current.Response.AppendCookie(Cookies);         2、登陆状态判断 HttpContext.Current.Session.Timeout = 300; HttpContext.Current.Session["UserName"] =""; } 问题: 1、为什么不全部使用Cookies作为用户登陆信息的保存

    90650

    位运算应用:保存状态标识应用

    最近在梳理某个业务的服务状态,是前人设计的使用位运算来记录表单字段的多个状态值。       0,当我们要保存状态时,直接用 | 运算用来第n位置 1即可。 1)增加1的状态,结果status=1;     00000000     00000001     -----------     00000001 = 1 2)增加记录状态值为2的状态:     00000001     00000010     -----------     00000011 = 3     这样当前状态值就记录了两个状态:1,2. 3)清除某个状态为2:     00000011 各状态依次定义为2的n次方: 操作状态:新增1、支付中2、支付完成4、取消8 支付状态:预支付16、支付回调32、支付完成64、支付回调失败128 退款状态:提交退款256、请求支付方512、退款完成1024

    9330

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 即时通信 IM

      即时通信 IM

      即时通信 IM(Instant Messaging)基于 QQ 底层 IM 能力开发,仅需植入 SDK 即可轻松集成聊天、会话、群组、资料管理能力,帮助您实现文字、图片、短语音、短视频等富媒体消息收发,全面满足通信需要。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券