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



应用程序没有关闭它,而是保持在同一屏幕上,而不是进入主屏幕?

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

onDestroy();替换为super.onBackPressed();
onDestroy()是"活动"的生命周期方法之一,您不应该像这样在代码中使用它。Android操作系统会在需要时调用它,它不打算在您的代码中使用。

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

OnDestroy()

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

finish();

方法。调用finish()将依次调用onDestroy()回调方法,如果有,您可以在该方法中处理任何收尾工作。

所以你的代码可能是这样的:

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

尝试

this.finishAffinity();

而不是

onDestroy();

这将结束您的应用程序

最新更新