我有一项活动,其中第一件事是为结果开始另一项活动。当结果返回时,它应该处理它,然后完成。我在startActivityForResult()
中进行了onCreate()
来电。
我看到有时当我从我开始的目标活动返回时,我的活动中再次调用onCreate()
。这当然是第二次重新启动目标活动。
这是有道理的,我明白为什么会这样,但我不明白我正在努力实现的正确模式。当我从我开始的活动返回时,我不想再次重新开始目标活动...我只想运行onActivityResult()
并完成。
我读过有人建议设置状态偏好的地方,但这似乎是错误的一个很好的来源,例如,如果它被卡在错误的状态。
有什么想法吗?
答案 0 :(得分:2)
跟进解决方案。关键是在onResume()中启动目标活动,而不是onCreate()。来自onActivityResult()上的javadocs,
您将立即收到此电话 在onResume()之前你的活动 正在重新开始。
换句话说,你可以放心,在onResume()之前调用onActivityResult()...例如,在onActivityResult()中设置一个标记“这次不要启动目标活动”,所以当onResume时随后调用(),可以避免重新启动目标活动。