• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
戈瑾
博客园    首页    新随笔    联系   管理    订阅  订阅
Android学习——活动被回收了怎么办

活动被回收了怎么办

  当一个活动进入到了停止状态,是有可能被系统回收的。那么想象以下场景∶应用中有一个活动A,用户在活动A的基础上启动了活动B,活动A就进入了停止状态,这个时候由于系统内存不足,将活动A回收掉了,然后用户按下 Back键返回活动A,会出现什么情况呢?其实还是会正常显示活动A的,只不过这时并不会执行onRestart()方法,而是会执行活动A的 onCreate()方法,因为活动A在这种情况下会被重新创建一次。

  这样看上去好像一切正常,可是别忽略了一个重要问题,活动 A中是可能存在临时数据和状态的。打个比方,MainActivity中有一个文本输人框,现在你输入了一段文字,然后启动NormalActivity,这时MainActivity由于系统内存不足被回收掉,过了一会你又点击了Back键回钊MainActivity,你会发现刚刚输人的文字全部都没了,因为MainActvity被重新创建了。

  解决办法:onSaveInstanceState()回调方法

posted on 2021-04-22 20:00  戈瑾  阅读(77)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3