2014-02-17 57 views
0

我用科爾多瓦3.3創建Android應用程序。 我要重寫後退按鈕(爲什麼不是重要的),我使用這種方法:在Android的覆蓋後退按鈕與moveTaskToBack 4.4.2奇巧

@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相關?

回答

1

由於您使用的科爾多瓦,爲什麼不使用從科爾多瓦的後退按鈕事件,而不是寫本地代碼的?

我用一個函數(如以下)來控制我的應用程序使用後退按鈕。最常見的用法是後退按鈕不會執行任何操作,除非用戶位於具有可返回視圖的視圖上。

試試這個:

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

+0

我完全錯過了這個功能,非常感謝!在KitKat中也很棒。 但是你有什麼想法,爲什麼我的本地方法不起作用? – gelly

+0

我不確定,但可能是此事件偵聽器的cordova函數優先於本機控制。 –

0

目前科爾多瓦不公開的Android原生方法moveTaskToBack() ..

如果你需要這個功能,你可以試試這個Cordova plugin