【问题标题】:onStop not being called ... Home button pressedonStop 没有被调用...按下主页按钮
【发布时间】:2011-04-11 17:59:54
【问题描述】:

在我的主要活动中,在 onStop 下,我设置了 myVar = true。在 onResume 中,我检查 myVar = true 是否并做一些事情。

如果您在我的主要活动中点击主页按钮并从主屏幕/应用程序抽屉再次启动它,它会正常工作。

如果您在不同的活动上点击主页按钮并从主屏幕/应用程序抽屉再次启动它,它会调出主要活动,因为我在主要活动上设置了 clearTaskOnLaunch="true" 和 android:finishOnTaskLaunch= “真”设置在我的其他活动上。但是,当按下 Home 按钮时,它似乎没有在主 Activity 中点击 onStop。

我开始其他活动以获得结果。如果结果代码 = result_ok 或 result_canceled,我设置 myVar = false。但是......如果按下主页按钮,它不应该设置结果并执行onActivityResult。

知道如何解决这个问题吗?

编辑:

above onCreate.. I set startNew = true;
@Override
    public void onStop() {
        super.onStop();
        startNew = true;
    }

    @Override
    public void onRestart() {
        super.onRestart();
        if (startNew) {
            getCurrentDate(0);
            updateDisplay();
            fillData();
        }
    }

对 startNew 的唯一引用是在我的 onActivityResult 方法中,如果从我的主活动启动的活动返回 result_ok 或 result_canceled,我设置 startNew = false。

我试图确保每次从主屏幕/应用抽屉启动我的应用时,它都会运行这 3 种方法。

【问题讨论】:

    标签: android


    【解决方案1】:

    移至 onPause(),因为根据文档,在某些情况下不会调用 onStop()。

    【讨论】:

    • 为了安全起见,我将其更改为安全,但我从未注意到两者之间的区别与我使用它的目的。
    • 根据文档,不保证会调用 onStop(),但会调用 onPause()。从 Honeycomb 开始,这些变化... onStop() 现在可以保证被调用,但是如果你想支持运行早期版本的设备,你需要相应地编码:developer.android.com/reference/android/app/Activity.html
    • 什么文档?
    【解决方案2】:

    您想在 onStop 中做什么?通常,您希望在 onPause 方法中执行此操作。在生命周期中越接近 onDestroy,在销毁 Activity 以恢复内存之前调用该方法的可能性就越小。

    【讨论】:

    • 我添加了更多细节。我正在做的似乎是一样的,onStop,onPause。
    • 由于活动的无状态特性,这在 Android 中很难实现。您故意不知道活动启动的来源。因此,我见过的最好的方法是对应用程序进行子类化,在其中放置标志,并从子活动的完成方法中更新标志。这样,如果您从托盘启动,则没有子活动,因此,标志保持其原始状态。如果子活动完成,则设置标志,并且您知道不需要重新触发您的方法。希望这是有道理的。
    • 我不一定需要知道它是从哪里启动的。我只需要确保每次看到主要活动时都会命中这 3 种方法,除非它是由于我为 result、setResult 和完成而开始的活动而进入视野时。唯一不起作用的情况是在主 Activity 之外按下主页按钮时。
    • 不一定需要知道它是从哪里启动的。我只需要确保每次看到主要活动时都会点击这 3 种方法,除非它是由于我为结果而开始的活动而出现的——这意味着您需要知道为什么您的活动会出现。真的是一样的区别。
    猜你喜欢
    • 2022-01-20
    • 2017-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多