【问题标题】:Why does OnResume gets called when starting activity for the first time为什么第一次启动活动时会调用 OnResume
【发布时间】:2013-07-05 20:17:39
【问题描述】:

我有一个活动,当它第一次加载时,它会执行一些 OnCreate,我在 OnResume 时也需要运行,问题是它第一次进入活动时,它会同时通过 OnCreate 和 OnResume,如果我导航到另一个活动,然后使用后退箭头返回到仅触发 OnResume 的活动,这很好,除非在第一次运行活动时通过它,这会导致它两次调用相同的东西.如果可能的话,我怎样才能避免第一次不调用 OnResume() 的活动?

【问题讨论】:

    标签: android android-lifecycle


    【解决方案1】:

    如果可能的话,我怎样才能避免第一次不调用 OnResume() 的活动?

    这是不可能的。它是专门设计的,因此您不会做两次。

    当它第一次加载时,它会在 OnCreate 执行一些我在 OnResume 时也需要运行的东西

    所有这些“东西”移动到onResume()。这样,无论 Activity 是首先进入屏幕还是返回屏幕,工作都会完成。

    您可能希望花一些时间查看the activity lifecycle

    【讨论】:

    • 非常好,刚接触android,感谢详细信息。谢谢
    【解决方案2】:

    这就是android activity lifecycle works

    避免此问题的一种方法是,只需将逻辑移至onResume()

    【讨论】:

      【解决方案3】:

      这是由于 Android 活动生命周期的性质造成的。请阅读Pausing and Resuming an Activity了解更多信息。

      干杯!

      【讨论】:

        【解决方案4】:

        如果您仍然想尝试其他解决方案,在onCreate 调用时第一次不运行您在onResume 中编写的代码。您可以添加boolean 值,在onCreateonResume 中为其分配真值,检查它是否为真,然后跳过代码,否则运行您在onRusume 上编写的代码。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-12
          • 1970-01-01
          • 2013-02-06
          • 1970-01-01
          • 2016-07-03
          相关资源
          最近更新 更多