在我的Activity onCreate方法中,我创建和Intent(比如启动相机)并调用startActivityForResult。问题是onCreate被调用两次,Intent被启动两次。两者都在onActivityResult中收到。
这里发生了什么?我的Activity加载后如何自动启动Intent?我尝试在onStart中调用startActivityForResult,但它仍然被调用两次。
感谢。
答案 0 :(得分:2)
onCreate
通常在您从其他活动返回时调用,就像您的示例中一样。 Google的活动生命周期文档在这方面有点误导(它们会让您认为onCreate
仅在应用生命周期中调用一次。)
您最好的选择是将您的州保存在onSaveInstanceState
,例如添加cameraCalled
标志,然后在onCreate
中检查该标志以防止循环。
答案 1 :(得分:0)
onCreate可能也可能不会被调用。
这将取决于内存情况以及操作系统是否会终止您的活动。您需要考虑这两种情况。当你从onCreate打电话时,这可能是不可行的。有关返回State of Activity while in onActivityResult question
所调用内容的顺序的详细信息,请参阅此处