【问题标题】:Activity is not restarting on tab changed in android活动未在 android 中更改的选项卡上重新启动
【发布时间】:2011-04-04 06:06:26
【问题描述】:

我正在使用 Tab-Host 进行活动。 我有两个标签。当我启动选项卡主机活动时,选项卡主机打开活动并且活动的生命周期正在调用,但是当我更改选项卡并再次打开前一个选项卡时,活动没有获得它的回调方法,如恢复。

【问题讨论】:

    标签: android android-activity android-tabhost


    【解决方案1】:

    我不认为它应该重新启动有任何具体原因。对于更改配置(例如旋转设备或滑出键盘),有一个特定的触发器,因为应用程序需要处理更改。但是任何其他过程都应该按照Activitvy lifeCycle

    当您的应用因任何原因进入后台(失去焦点)时,您会调用 onPause(),当它返回时,将调用您的 onResume()。当你回家然后回到你的应用程序时,或者当你像这样切换活动时,这也是一样的。没有新的意图或类似的东西,只是回到活动。

    你应该把你需要运行的代码放在onResume()

    【讨论】:

    • 您是否正确调用onresume(),每次更改时都会调用,但是我有另一个具有相同代码的示例,但在该代码中更改了该代码,则更改选项卡()和onresume()两种方法调用.所以我很困惑
    • 当由于某种原因(内存?)您的活动被杀死时,就会调用 onCreate。可能还有其他原因,但底线是您确定调用了 onResume,因此如果需要,这将是做一些工作的地方。
    【解决方案2】:

    改为在 onResume() 中执行您需要在活动中执行的操作。每次都会调用它,而不仅仅是第一次创建它。

    http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

    【讨论】:

      【解决方案3】:

      当您从一个选项卡切换到另一个选项卡并返回时,第一个选项卡只会调用其 onResume 方法,因为它已经在第一次调用了 onCreate。

      如果您希望在再次获得焦点时发生任何特定的事情,您可以在 onResume 方法中运行您喜欢的代码。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多