【问题标题】:Android launch intent from onCreate来自 onCreate 的 Android 启动意图
【发布时间】:2012-02-19 06:29:41
【问题描述】:

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

这里发生了什么?当我的 Activity 加载时,我应该如何自动启动一个 Intent?我尝试在onStart中调用startActivityForResult,但还是调用了两次。

谢谢。

【问题讨论】:

    标签: android android-intent


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      在您返回时可能会也可能不会调用 onCreate。

      这将取决于内存情况以及操作系统是否杀死了您的活动。您将需要考虑这两种情况。当您从 onCreate 调用时,它可能不可行。有关返回 State of Activity while in onActivityResult question 调用顺序的更多信息,请参阅此内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-01-19
        • 1970-01-01
        • 1970-01-01
        • 2011-05-19
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 1970-01-01
        相关资源
        最近更新 更多