来自onCreate的Android启动意图

时间:2012-02-18 18:23:09

标签: android android-intent

在我的Activity onCreate方法中,我创建和Intent(比如启动相机)并调用startActivityForResult。问题是onCreate被调用两次,Intent被启动两次。两者都在onActivityResult中收到。

这里发生了什么?我的Activity加载后如何自动启动Intent?我尝试在onStart中调用startActivityForResult,但它仍然被调用两次。

感谢。

2 个答案:

答案 0 :(得分:2)

onCreate通常在您从其他活动返回时调用,就像您的示例中一样。 Google的活动生命周期文档在这方面有点误导(它们会让您认为onCreate仅在应用生命周期中调用一次。)

您最好的选择是将您的州保存在onSaveInstanceState,例如添加cameraCalled标志,然后在onCreate中检查该标志以防止循环。

答案 1 :(得分:0)

返回时,

onCreate可能也可能不会被调用。

这将取决于内存情况以及操作系统是否会终止您的活动。您需要考虑这两种情况。当你从onCreate打电话时,这可能是不可行的。有关返回State of Activity while in onActivityResult question

所调用内容的顺序的详细信息,请参阅此处