activity 如何从后台隐藏状态显示

我想 从a 跳转到 b ,a 不销毁,然后b返回a ,b后台 也不销毁。然后下一次打开b 再显示出来 并且数据还是原来的

阅读 5.7k
1 个回答

解决方案: 复用Activity Stack中的实例。

launchMode: SingleTop   
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

上述解决方案基本可以解决你的问题,但并不是绝对。
由于内存回收机制的原因,A --> B后,极端情况下A可能会被销毁,再次跳转至A,会重新create,当然 这可以算是相对极端的情况。

针对这种算是相对极端的情况的处理:

比较常见的方法是:

  • 在onPause() 或 onSaveInstanceState()方法保存数据,当然只建议是量级较小的数据。onResume() 或 onRestoreInstanceState() 进行数据恢复。 前者适合保存持久性的数据,后者适合临时保存如UI信息的数据。

  • onResume() / onRestart() 生猛的进行重新请求。

需要注意的是onSaveInstanceState和onRestoreInstanceState 并不一定会成对调用。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题