我在我的应用程序活动中使用以下代码,以防止它关闭我的应用程序。
/* Prevent app from being killed on back */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Back?
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Back
moveTaskToBack(true);
}
// Return
return super.onKeyDown(keyCode, event);
}
它不起作用。该应用程序设置为Android 1.6(API Level 4)兼容。单击我的应用程序图标会在Splash活动(主要是)上重新启动我的应用程序。如何阻止我的应用程序关闭?
答案 0 :(得分:11)
更简洁的解决方案: -
@Override
public void onBackPressed() {
// do nothing. We want to force user to stay in this activity and not drop out.
}
答案 1 :(得分:9)
您是否尝试将super
调用放入else块中,以便仅在密钥不是KEYCODE_BACK
时调用?
/* Prevent app from being killed on back */
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// Back?
if (keyCode == KeyEvent.KEYCODE_BACK) {
// Back
moveTaskToBack(true);
return true;
}
else {
// Return
return super.onKeyDown(keyCode, event);
}
}
老实说,你不能依赖这个,因为一旦你的应用程序被放置在后台,它可以随时回收,以便系统回收内存。
答案 2 :(得分:2)
即使你能做到这一点,你也不应该这样做。强制用户将应用程序一直保留在内存中并不是一个好主意,只会让他们烦恼。
答案 3 :(得分:0)
如果需要导航回来以及阻止关闭,那么在Android WebView中使用:
@Override
public void onBackPressed() {
if (mWebView.canGoBack()) {
mWebView.goBack();
return;
}
// Otherwise defer to system default behavior.
super.onBackPressed();
}