每次后退按钮都会调用Activity.onDestroy

时间:2017-01-19 03:34:42

标签: android android-activity activity-lifecycle

我正在测试正在开发的Android应用程序。

它包含一个MainActivity

我通过测试注意到每次按下后退按钮时都会调用onDestroy。

我认为这很奇怪。所以我使用android studio创建了一个新的空活动应用程序,并且没有添加任何代码。只是一个简单的问候世界。

即使在这个hello world应用程序中,每次按下时都会调用onDestroy。

我正在运行三星S4,我没有理由相信它资源匮乏。这是怎么回事?

我尝试将android:launchMode设置为AndroidManifest.xml中的所有可用值,但这些都不起作用....

3 个答案:

答案 0 :(得分:0)

每当你按下按钮时活动就会被破坏,即android默认行为。这是代码流动的方式。  覆盖Activity

中的onBackPressed
   /**
     * called when user press back button on device
     */
    @Override
    public void onBackPressed() {
        super.onBackPressed();
    }

进入位于FragmentActivity内的onBackPressed,这表明它将首先从活动中弹出所有片段,然后它将完成活动。

   /**
     * Take care of popping the fragment back stack or finishing the activity
     * as appropriate.
     */
public void onBackPressed() {
    if (!mFragments.getSupportFragmentManager().popBackStackImmediate()) {
        supportFinishAfterTransition();
    }
}

答案 1 :(得分:0)

按下后退按钮后调用OnDestroy()是正常和预期的行为。这是Android Activity Lifecycle的标准部分。您可以在此处阅读有关生命周期的信息:https://developer.android.com/guide/components/activities/activity-lifecycle.html

除非你有充分的理由,否则我不建议覆盖jitesh建议的后退按钮行为。用户希望您的应用已关闭"按下后退按钮后(销毁)。

答案 2 :(得分:0)

如果您希望每次点按后退按钮都不调用OnDestroy()

@Override
public void onBackPressed() {
    // super.onBackPressed(); // remove this line
}