解决方案: 复用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 并不一定会成对调用。
上述解决方案基本可以解决你的问题,但并不是绝对。
由于内存回收机制的原因,A --> B后,极端情况下A可能会被销毁,再次跳转至A,会重新create,当然 这可以算是相对极端的情况。
针对这种算是相对极端的情况的处理:
在onPause() 或 onSaveInstanceState()方法保存数据,当然只建议是量级较小的数据。onResume() 或 onRestoreInstanceState() 进行数据恢复。 前者适合保存持久性的数据,后者适合临时保存如UI信息的数据。
onResume() / onRestart() 生猛的进行重新请求。
需要注意的是onSaveInstanceState和onRestoreInstanceState 并不一定会成对调用。