2015-12-16 256 views
1

该应用程序不关闭它,仍然在同一屏幕上,而不是去主屏幕?当后退按钮被按下Toast显示,但ondestroy()不工作

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

什么是你'的onDestroy()'方法的代码? – kabuto178

+1

如果你只是想结束这个应用程序,那么'finish()'方法就是你要找的,或者super.onBackPressed()也是为你做的。 – kabuto178

回答

0

的OnDestroy()

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

finish();

方法。 调用finish()将会依次调用onDestroy()回调方法,如果有的话可以处理任何停止工作。

所以你code.may是这样的:

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

尝试的

this.finishAffinity(); 

代替

onDestroy(); 

这将结束您的应用程序

2

更换onDestroy();super.onBackPressed();
onDestroy()是Activity的lifecycle方法之一,你不应该在你的代码中这样使用它。 Android OS会在需要时调用它,它不打算在您的代码中使用。

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

+0

它应该是完美的 –

+0

请解释超级 –

+0

的作用@KushalMaharana https://docs.oracle.com/javase/tutorial/java/IandI/super.html – aga

相关问题