按下后退按钮时会显示Toast,但ondestroy()不起作用

时间:2015-12-16 14:13:14

标签: android

应用程序无法关闭它,仍然在同一屏幕上而不是进入主屏幕?

public void  onBackPressed() {   
    Toast.makeText(getBaseContext(), "Bye Bye Have a nice day!", Toast.LENGTH_SHORT).show();
    onDestroy();
}

3 个答案:

答案 0 :(得分:2)

onDestroy();替换为super.onBackPressed(); onDestroy()是Activity的lifecycle方法之一,您不应该在此代码中使用它。 Android操作系统会在需要时调用它,它不打算在您的代码中使用。

当您需要完成活动时,您可以使用其finish()方法。但是,在您的情况下,您将覆盖默认情况下完成Activity的方法Activity#onBackPressed();因此我们可以使用其基类中的版本来履行其职责。

答案 1 :(得分:0)

尝试

this.finishAffinity();

而不是

onDestroy();

这将结束您的应用

答案 2 :(得分:0)

  

OnDestroy()

是活动的回调方法,不应手动调用。 退出你的活动即。要完成您需要致电的活动

  

结束();

方法。 调用finish()将依次调用onDestroy()回调方法,如果你有,你可以处理任何结束工作。

所以你的代码可以这样:

    public void onBackPressed() {
    Toast.makeText(getBaseContext(), "Bye Bye Have a nice day!", Toast.LENGTH_SHORT).show();
finish(); }