阻止后退按钮关闭我的应用程序

Kei*_*ler 7 graphics android

我在我的应用程序的活动中使用以下代码,以防止它关闭我的应用程序.

/* 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);

    }
Run Code Online (Sandbox Code Playgroud)

这是行不通的.该应用程序设置为Android 1.6(API Level 4)兼容.单击我的应用程序图标会在Splash活动(主要是)上重新启动我的应用程序.如何阻止我的应用程序关闭?

Neb*_*ebu 11

更简洁的解决方案: -

@Override
public void onBackPressed() {
    // do nothing. We want to force user to stay in this activity and not drop out.
}
Run Code Online (Sandbox Code Playgroud)


jon*_*ohn 10

您是否尝试将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);
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,诚实地说,你不能依赖于此,因为一旦你的应用程序被放置在后台,它可以在任何时候被回收用于系统回收内存.