你后台的Activity被系统回收怎么办?如果后台的Activity由于某种原因被系统回收了,如何在被系统回收之前保存当前状态?

除了在栈顶的Activity,其他的Activity都有可能在内存不足的时候被系统回收,一个Activity越处于栈底,被回收的可能性就越大。

protected void onSaveInstanceState(Bundle outState) {

super.onSaveInstanceState(outState);

outState.putLong("id", 1234567890);

}

public void onCreate(Bundle savedInstanceState) {

//判断 savedInstanceState是不是空.

//如果不为空就取出来

super.onCreate(savedInstanceState);

}

如果我们没有覆写onSaveInstanceState()方法,此方法的默认实现会自动保存Activity中的某些状态数据,比如Activity中各种UI空间的状态。Android应用框架中定义的几乎所有的UI控件都恰当的实现了onSaveInstanceState()方法,因此当Activity被摧毁和重建时,这些UI控件会自动保存和恢复状态数据。比如EditText控件会自动保存和恢复输入的数据,而CheckBox控件会自动保存和恢复选中状态。开发者只需要为这些控件指定一个唯一的ID(通过设置android:id属性即可),剩余的事情就可以自动完成了。如果没有为控件指定ID,则这个控件就不会进行自动的数据保存和恢复操作。

由上所述,如果我们需要覆写onSaveInstanceState()方法,一般会在第一行代码中调用该方法的默认实现:super.onSaveInstanceState(outState)。

详见:Android开发之InstanceState详解。

转载于:https://www.cnblogs.com/dazuihou/p/3565196.html

若后台的Activity被系统回收...相关推荐

  1. android回收activity,Android系统回收activity行为

    安卓本身不支持内存分页交换技术,是通过回收activity的方式来回收内存的..activity处于onPause或者onStop状态时,假如系统资源不足(内存不足),会被系统回收释放. 系统回收内存 ...

  2. Android长时间后台运行,内存被回收再次打开导致APP崩溃(APP在后台被系统回收后,如何重新启动?)

    问题: 因为手机内存不足的时候,会回收一些APP所占内存,如果被回收的APP中有全局变量,那么再次进入这个APP就会导致异常报错: 原因: 因为Application是全局变量,内存不足的时候会被回收 ...

  3. Android6.0以上应用在长时间在后台,因为内存不足导致系统回收内存,当再次启动应用出现Fragment重叠或者空白、异常解决方案(提供模拟内存不足导致系统回收内存的方案)。

    Android6.0以上应用在长时间在后台,因为内存不足导致系统回收内存,当再次启动应用出现Fragment重叠或者空白解决方案. 首先提供一个方法模拟内存不足导致系统回收内存的方案: 打开Andro ...

  4. android app被系统回收后重启异常的解决方法

    APP在后台运行的时候时常会发生被系统回收的事情,可能是内存不足的多种原因造成.被系统回收后系统任然会保留APP的activity栈,用以恢复,但是这样就存在很多的问题需要解决,如果activity没 ...

  5. android 应用被系统回收,莫往Applicaotion存缓存/app被系统回收之后再打开发生了什么...

    先上结论: 1.尽量不要往Application里面存放缓存数据(因为app用application缓存切使用全局数据,当这个app为后台程序时又被系统gc回收后我们再次打开app,就会导致空指针) ...

  6. Android后台驻留:保活和回收的机制

    简介 众所周知,Android平台的管理机制下,App进入后台后,为了提供持续的及时服务(如推送.音乐),或进行驻留获取收益(跟踪.信息收集.广告)等,会利用一些方法来让自身保持活跃,躲过被Andro ...

  7. Java Web 后台中餐饮业报表系统开发实例

    本期葡萄城公开课,我们诚邀石家庄品智技术有限公司,高级软件工程师--刘永政先生,为大家在线分享餐饮业报表系统设计模式,以及在 HTML5 报表浏览器.Java 架构中跨平台使用ActiveReport ...

  8. Android Q 限制后台启动Activity

    描述 Android Q限制在没有用户交互的情况下加载Activity.这一变化可以最大限度的减少对用户的打扰,保持用户对屏幕上所显示内容的可控性. 运行在Android Q上的APP仅在以下一种或多 ...

  9. android 10+从后台启动 Activity 的限制

    限制后台启动activity 如果未满足相关条件,则后台不允许启动activity,并会打印如下相关的log: // anything that has fallen through would cu ...

  10. Android10适配-针对从后台启动 Activity 的限制

    Android 10 中的隐私权变更 从 Android 10 开始,系统会增加针对从后台启动 Activity 的限制.此项行为变更有助于最大限度地减少对用户造成的中断,并且可以让用户更好地控制其屏 ...

最新文章

  1. 将简历挂到云服务器网站上记
  2. Map Set list 理解
  3. CodeForces - 1512G Short Task(欧拉筛求因子和)
  4. 【SpringBoot 2】(七)请求处理——映射 常用注解 方法参数的小技巧
  5. 我年薪百万,孩子教育花掉一半
  6. byte数组转blob类型_Java类型相互转换byte[]类型,blob类型
  7. 修改官方发行openstack镜像的cloud-init登录方式为账号密码登录
  8. android autolayout教程,Android中AutoLayout的使用
  9. 大学c语言如何自学,大学c语言的学习方法指导
  10. windows影音制作工具安装教程
  11. 【从零开始学极狐gitlab】01环境搭建 #JIHULAB101
  12. 工业大数据竞赛的轴承数据集
  13. UVA-10347 Medians 计算几何 中线定理
  14. 跳棋最少移动次数 java,跳棋
  15. Radio RDS简介
  16. 4分用计算机算,4分制绩点换算(4分制绩点计算器)
  17. git操作总结(1):常用操作流程之SSH、上传、下载和改名字
  18. 2017年下半年小虎软考备考攻略
  19. java多线程设计模式详解
  20. 使用Markdown制作简历

热门文章

  1. Java开发中学用eclipse code templates
  2. 1次订单事故,扣了我3个月绩效!
  3. 好险!一入职,就遇到MySQL这么大Bug!差点背锅走人~
  4. 全中国加油:Github 开源了新型肺炎防疫项目,一起助力
  5. Spring Framework 5.0 新特性有这些
  6. Java基础--序列化和反序列化
  7. mysql 双主复制 centos7
  8. not1,not2,bind1st,bind2nd
  9. webpack使用笔记
  10. 正确理解和使用GBK及UTF-8编码