PhoneGap在onPause后继续在Android上运行

我决定在应用程序处于后台时testingphonegap WebView是否有效。

function test2(x){ $('<div></div>', {text: x.cmd}).appendTo($('#list')); } $(function(){test2({cmd:"start"});}); function cb_pause(){test2({cmd:"pause"});} function cb_resume(){ test2({cmd:"resume"});} function tick(){test2({cmd:"timer" + timer});timer++;setTimeout(tick, 1000);} document.addEventListener("pause", cb_pause, false); document.addEventListener("resume", cb_resume, false); tick(); 

它在onPauseonResume上打印pauseresume 。 并每秒钟打印timer0timer1等。

甚至当我离开应用程序并开始玩游戏时,它也正在打印。 我知道我可以,应该停止onPause计时器,但仍然。 它看起来错了。 我预计android会冻结WebView。

我知道后台线程不会停止,如果在后台的应用程序,直到它被卸载。

所以问题是:有没有办法冻结/暂停/卸载onPause webview和解冻/恢复/加载onResume

当我说负载我的意思是应该在用户离开应用程序时处于相同的状态。

当我说冻结,我的意思是我的代码将暂停,即使它将继续调用setTimeout

我想我预计Android会像iOS一样行事。

Related of "PhoneGap在onPause后继续在Android上运行"

我迟到了回应。 在phonegap中,在config.xmlKeepRunning参数

您必须config.xml下行添加到config.xml

 <platform name="android"> ... <preference name="KeepRunning" value="false" /> 

它将调用pauseTimers()并暂停所有的WebViews。 pauseTimers()不是隐藏方法,不需要reflection。

这应该有助于: WebView线程永不停止(WebViewCoreThread,CookieSyncManager,http [0-3])

基本上你必须使用reflection来访问WebView的onPause / onResume方法,才能真正让它暂停和恢复。