2014-09-13 5 views
3

어떤 이유로 일시 중지 이벤트가 발생하면 발포하지 않습니다.코르도바 : 발사하지 않는 이벤트

내 휴대 전화의 홈 버튼을 누르면 일시 중지 이벤트가 발생하여 음악을 일시 중지해야합니다. 하지만 대신에 계속 연주합니다.

하지만 내 앱을 다시 열면 갑자기 일시 중지되었다가 다시 시작됩니다. 따라서 앱으로 돌아갈 때 두 이벤트가 모두 발생합니다.

앱을 종료 할 때 onPause가 실행되지 않는 이유는 무엇입니까?

나는 다음과 같은 코드가 있습니다

function onLoad() { 
    document.addEventListener("deviceready", onDeviceReady, false); 

function onDeviceReady() { 
    document.addEventListener("resume", onResume, false); 
    document.addEventListener("pause", onPause, false); 
} 

function onPause() { 
    PauseMusic(); 
    alert('paused'); 
} 

function onResume() { 
    ResumeMusic(); 
    alert('resumed'); 
} 

답변

3

것은 당신이 iOS에서 테스트를? 일시 정지 처리기에서

, 오브젝티브 C를 통해 이동 코르도바의 API 또는 네이티브 플러그인에 대한 호출이 작동하지 않습니다 나는 또한 폰갭 문서 points out으로,이 iOS에서 "정상"행동으로 발견 , 경고 또는 console.log()와 같은 대화식 호출과 함께. 다음 실행 루프에서 앱이 다시 시작될 때만 처리되는 것은 입니다.

문서에 따르면 앱을 닫을 때 alert('paused)이 표시되지 않습니다.

그러나 내 관찰에 따르면 코드가 앱 일시 중지시 실행되며 콘솔 인쇄물 만 다음 앱 재시작까지 지연됩니다.

PauseMusic() 호출이 실행되지 않으면 더 많은 코드를 게시하고 거기에 문제가 있는지 확인해야합니다.

+0

Android에 있습니다. 나는 iOS "quirk"를 보았다. 나는 그것과 비슷하다고 생각하지만 안드로이드에서 (docs에 따라) 일어나서는 안된다. 그러나 더 많은 사람들이 문제가있는 것으로 보입니다. 참조 : https://groups.google.com/forum/#!searchin/phonegap/pause/phonegap/nX-h3A4_Yn8/LrW91VfPJmMJ - 버그라고 생각합니다. –

6

정확하게 똑같은 문제가 있다고 생각합니다. PhoneGap config.xml 변수 KeepRunning을 false로 설정했습니다. 나는 사실로 설정하고 이제는 일시 중지 이벤트를받습니다.

<preference name="KeepRunning" value="true"/> 

내가 앱이 다음 실행되고 있지 않은 경우 응용 프로그램이 다시 실행될 때까지 일시 정지 이벤트 코드가 실행을받지 않습니다 것을 의미합니다 가정 : 여기에 대해 이야기하고있는 config.xml의 라인입니다. KeepRunning은 일시 중지 이벤트 수신보다 우선 순위가 높습니다. 왜 이것이 정확히 낮은 수준에 있는지에 대한 적절한 설명을 얻는 것은 흥미로울 것입니다.

+0

참고 KeepRunning은 Android에서만 작동합니다 : https://cordova.apache.org/docs/en/5.1.1/guide_platforms_android_config.md.html#Android%20Configuration –

+0

KeepRunning의 기본값은 무엇입니까? –

관련 문제