2014-02-17 2 views
0

저는 Cordova 3.3을 사용하여 Android 앱을 만들고 있습니다. (중요하지 않은 이유) 나는 뒤로 버튼을 대체하려면 나는이 방법을 사용하고 있습니다 :안드로이드에서 moveTaskToBack으로 뒤로 버튼을 무시하십시오. 4.4.2 KitKat

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

그러나이 중 어느 것도 안드로이드에서 작동하지 않습니다 :

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

가 나는 또한이 방법을 시도 4.4.2 (KitKat), 어떤 이유로 든 onDestroy()가 여전히 호출됩니다.

부울 "taskInBack"변수를 설정하려고했지만 onDestroy()가 호출 되었기 때문에 변수가 도움이되지 않습니다 ..

다른 Android 버전에서이 기능을 사용했지만 KitKat을 제외한 모든 기능이 제대로 작동하는 것 같습니다.

왜 이것이 작동하지 않는지 아는 사람이 있습니까? 그것은 코르도바 관련 일 수 있습니까, 아니면 안드로이드 관련입니까?

답변

1

코르도바를 사용하고 있으므로 네이티브 코드를 작성하는 대신 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

+0

나는이 기능을 완전히 놓쳤다. KitKat에서 잘 작동합니다. 하지만 내 기본 접근 방식이 작동하지 않는 이유를 알고 있습니까? – gelly

+0

잘 모르겠습니다 만,이 이벤트 리스너의 코도 바 기능이 기본 제어보다 우선 순위가 높을 수도 있습니다. –

0

현재 코르도바는 안드로이드 네이티브 메소드 moveTaskToBack()을 노출하지 않습니다이 ..

,이 Cordova plugin을 시도 할 수 있습니다

관련 문제