你能帮我解决我的问题吗?
我有活动1,活动2。Activity1 在 中创建 UI onCreate()
,然后在某个时刻用户启动 Activity2startActivityForResult()
内存不足的情况似乎很少见,但我遇到过一次,所以我想在以后防止它。我什至可以通过运行一些“硬”应用程序或游戏来重复这种情况。结果是 - 当我返回我的应用程序时,Activity2 被重新创建。然后当我按返回按钮返回 Activity1 时,它也会重新创建。我在这里有逻辑冲突。Activity1 UI 从零开始创建,onCreate
同时在onActivityResult
!
我该如何解决这个问题?触发一些标志onCreate
并检查它onActivityResult
?这对我有用,但我认为它不应该是这样。
我的手机有 Stock ROM,Android 2.3.5
更新:好的,具体问题,我有一个元素列表。它内置于onCreate()
. 离开 Activity2 我需要记住被点击元素的 id 以便稍后在onActivityResult()
. 将它保存在 bundle 中不是问题onSaveInstanceState()
。但!从捆绑中获取它是个坏主意,onCreate()
因为我没有什么要更新的!为了清楚起见,这里是伪代码:
onCreate()
{
elementId = getIdFromBundle();
if (elementId == null)
createNewListFromZero();
}
onSaveInstanceState()
{
putIdToBundle(elementId);
}
onActivityResult()
{
updateOnlyOneListElement(elementId);
}
所以我不能通过它的 id 更新元素,因为活动实际上被系统破坏了。我需要重建它。而且我连续打电话给onCreate(), onActivityResult()
. 问题是我应该如何在这两种方法之间共享逻辑以正确顺序创建\更新我的元素列表?