You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "hugefactory (JIRA)" <ji...@apache.org> on 2015/01/30 10:38:38 UTC
[jira] [Created] (CB-8383) pause event don't fire when
'KeepRunning' is false
hugefactory created CB-8383:
-------------------------------
Summary: pause event don't fire when 'KeepRunning' is false
Key: CB-8383
URL: https://issues.apache.org/jira/browse/CB-8383
Project: Apache Cordova
Issue Type: Bug
Components: Android
Affects Versions: 3.5.0, Master, 4.0.0, 4.1.3
Environment: Mac osx 10.9
Reporter: hugefactory
When a project use 'KeepRunning=false' in the config.xml file, the 'pause' event in javascript don't fire when application go to background. Next, 'pause' event fire when 'resume' is call and when the application resume.
The problem is in 'CordovaWebView.java' in the 'handlePause' method :
public void handlePause(boolean keepRunning)
{
LOG.d(TAG, "Handle the pause");
// Send pause event to JavaScript
this.loadUrl("javascript:try{cordova.fireDocumentEvent('pause');}catch(e){console.log('exception firing pause event from native');};");
// Forward to plugins
if (this.pluginManager != null) {
this.pluginManager.onPause(keepRunning);
}
// If app doesn't want to run in background
if (!keepRunning) {
// Pause JavaScript timers (including setInterval)
this.pauseTimers();
}
paused = true;
}
As you can see, 'pauseTimers()' is call immediatly when we choose 'KeepRunning' false.
According to the Android documentation, 'pauseTimer()' stop all javascript activity....then the 'pause' javascript callback is not execute (it's execute after, when the 'resumeTimers()' is call and the application resume.
I suggest to delay the 'pauseTimers()' for 1 or 2 sec. Then the javascript 'pause' can execute before the application is really stop :
//OLD
//this.pauseTimers();
//NEW
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
LOG.d(TAG, "Handle the pauseTimers");
pauseTimers();
}
}, 1000);
}
Thanks.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org