我有两个活动:ActivityA和ActivityB。 ActivityA为结果启动Activity B,并期望某个resultCode。如果它没有得到它,ActivityA完成。这个想法是关闭了应用程序。
ActivityA还有一个onResume方法可以完成一些工作。如果ActivityA决定在onActivityResult方法中完成,我不希望这样做。
这在大多数情况下都有效,除了在内存不足的情况下,android会从内存中删除ActivityA和ActivityB并重新加载它们。
例如:ActivityA启动ActivityB。背景应用程序。然后android做任何内存清理。我们可以在DDMS中模拟它。
最后两个步骤是不可取的。没有低内存问题,正常的工作流程如下所示:
我在运行Gingerbread的手机和运行Jellybean的Nexus 7上看到了这一点。
我的第一个问题:我在活动生命周期中遗漏了哪些东西?
如果失败,这是Android的预期行为吗?有没有一种优雅的方法来解决这个问题,或者我是否需要破解某些东西,或者我应该一起尝试不同的方法?
提前致谢。如果有人需要更多信息或代码,请告诉我。
答案 0 :(得分:1)
您可以声明班级成员private boolean mShouldFinished
。调用onActivityResult
时,将其设置为finish
中的 true 。在onResume
检查mShouldFinished
,如果 true ,请致电finish
。