zoukankan      html  css  js  c++  java
  • Activity的保存状态和状态恢复

    Activity的保存状态和状态恢复

    当系统内存不足时,系统会强制结束一些不可见的Activity以节省内存资源。在某些情况下,当被强制结束的Activity再次显示时会出现一些问题。
    例如:一个APP有2个Activity界面:Activity1 和 Activity2。用户在Activity1填写了一些数据后跳转到了Activity2,Activity2完全把Activity1遮盖了起来。当系统资源不足时,被Activity2完全遮盖住的Activity1也有可能被系统干掉。如果发生了这种情况,当用户在Activity2折腾了一番又点击返回按钮想返回Activity1时,就可能会有一些问题了。因为Activity1已经被系统强制销毁了,用户之前在Activity1填写的数据已经不存在了。所以Activity类中还提供了onSaveInstanceState() 和 onRestoreInstanceState() 2个方法可以用来解决这个问题。
    1、onSaveInstanceState() 
    onSaveInstanceState() 方法用来在Activity被强制销毁之前保存数据,onSaveInstanceState()方法会携带一个 Bundle类型的参数,Bundle提供了一系列的方法用于保存数据,比如可以使用 putString()方法保存字符串,使用 putInt()方法保存整型数据。每个保存方法需要传入两个参数,第一个参数是键,第二个参数是真正要保存的内容。

    2、onRestoreInstanceState()
    onSaveInstanceState() 方法用来取得之前在onSaveInstanceState() 保存的值。
    另外,除了onRestoreInstanceState()可以取得onSaveInstanceState() 保存的值之外,onCreate()函数也可以取得保存的值,这些值就存在onCreate()函数的参数savedInstanceState里,在哪个函数取出这些值就要看具体的需求了。

  • 相关阅读:
    scroll事件实现监控滚动条改变标题栏背景透明度(zepto.js )
    瀑布流-转载
    如何清除img图片下面有一片空白
    加减号改变input[type=number]的数值,基于[zepto.js]
    如何移除HTML5的type=""number""的input标签的上下箭头
    滑屏框架
    GO_06:GO语言基础之struct
    GO_05:GO语言基础map与函数
    GO_04:GO语言基础条件、跳转、Array和Slice
    GO_03:GO语言基础语法
  • 原文地址:https://www.cnblogs.com/li1010425/p/6149468.html
Copyright © 2011-2022 走看看