2012-02-18 47 views
1

在我的Activity onCreate方法中,我创建了Intent(称为启动摄像头)并调用startActivityForResult。问题是,onCreate被调用两次,Intent被启动两次。两者都在onActivityResult中接收。来自onCreate的Android启动意向

这是怎么回事?我的Activity在加载时应该如何自动启动一个Intent?我尝试在onStart中调用startActivityForResult,但它仍被调用两次。

谢谢。

+1

您可以发布一些代码吗? – 2012-02-18 18:24:21

回答

2

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

最好的选择是保存你的状态onSaveInstanceState,例如,添加一个cameraCalled标志,然后检查onCreate中的该标志以防止出现循环。

0

当您返回时,onCreate可能会也可能不会被调用。

这将取决于内存情况以及操作系统是否杀死您的活动。您需要考虑这两种情况。当你从onCreate打电话时,这可能是不可行的。请参阅此处获取更多关于退货所需订单的信息State of Activity while in onActivityResult question