[
https://issues.apache.org/jira/browse/CB-4560?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Bowser resolved CB-4560.
----------------------------
Resolution: Not A Problem
Yeah, this seems like a bug with Android. Good thing they fixed it in ICS and
above.
This isn't a Cordova problem, since we only want to pause the timers when
keepRunning is true, and in that case, they're balanced unless there's
something wrong with the pause and resume events on Android, which is once
again something out of their control.
Why don't you go pester Google?
> Android call to pauseTimers might not pause timers
> --------------------------------------------------
>
> Key: CB-4560
> URL: https://issues.apache.org/jira/browse/CB-4560
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 2.9.0
> Environment: GingerBread devices
> Reporter: Peter
> Assignee: Joe Bowser
>
> Older Android versions (eg GINGERBREAD) had some quirk where the API
> pauseTimers/resumeTimers was controlled by an internal reference counter.
> Refer to
> http://grepcode.com/file_/repository.grepcode.com/java/ext/com.google.android/android/4.0.1_r1/android/webkit/JWebCoreJavaBridge.java/?v=diff&id2=2.3.3_r1
>
> It means that unless the pauseTimers/ResumeTimers were carefully balanced
> then calling these API methods might not actually be doing what the caller
> expects.
> The CordovaWebView.java code calls to the Android pauseTimers/resumeTimers
> are not balanced (the call to pauseTimers is conditional but the call to
> resumeTimers is unconditional). Because of this, there would be some scenario
> where resumeTimers gets called more times than pauseTimers, and in such a
> case the pauseTimers is not actually going to do anything on a GINGERBREAD
> device.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira