使用Android 4.4.2 KitKat中的moveTaskToBack覆盖后退按钮

时间:2014-02-17 15:28:27

标签: android cordova override

我正在使用Cordova 3.3来创建Android应用。 我想覆盖后退按钮(为什么不重要),我正在使用这种方法:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

我也试过这种方法:

@Override
public void onBackPressed()
{
    moveTaskToBack(true);
}

但是,这在Android 4.4.2(KitKat)中都不起作用,onDestroy()仍因某些原因被调用..

我也试过设置一个布尔“taskInBack”变量,但是因为onDestroy()被调用,变量没有帮助..

我在不同版本的Android上试过这个,除了KitKat之外,它似乎都运行良好。

有谁知道为什么这不起作用?它可能与Cordova有关,还是与Android有关?

2 个答案:

答案 0 :(得分:0)

由于您使用的是Cordova,为什么不使用Cordova的backbutton事件而不是编写本机代码?

我使用一个函数(如下所示)来控制我的应用程序中后退按钮的使用。最常见的用法是后退按钮不执行任何操作,除非用户位于可以返回视图的视图上。

试试这个:

document.addEventListener("backbutton", onBackKeyDown, false);

function onBackKeyDown() {
    // Handle the back button
}

完整参考: http://docs.phonegap.com/en/3.3.0/cordova_events_events.md.html#backbutton

答案 1 :(得分:0)

目前,Cordova未公开Android原生方法moveTaskToBack() ..

如果您需要该功能,可以试用Cordova plugin