If we're stopped, make sure watchdog alarm is also stopped
Bug: 5647625 Change-Id: I33e94107f2d6e4a38a5a221df72ed83596ca7c54
This commit is contained in:
parent
07676012f7
commit
ecaa977413
@ -405,13 +405,22 @@ public class AttachmentDownloadService extends Service implements Runnable {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void cancelWatchdogAlarm() {
|
||||||
|
if (mAlarmManager != null && mWatchdogPendingIntent != null) {
|
||||||
|
mAlarmManager.cancel(mWatchdogPendingIntent);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Watchdog for downloads; we use this in case we are hanging on a download, which might
|
* Watchdog for downloads; we use this in case we are hanging on a download, which might
|
||||||
* have failed silently (the connection dropped, for example)
|
* have failed silently (the connection dropped, for example)
|
||||||
*/
|
*/
|
||||||
private void onWatchdogAlarm() {
|
private void onWatchdogAlarm() {
|
||||||
// If our service instance is gone, just leave...
|
// If our service instance is gone, just leave (but cancel alarm first!)
|
||||||
if (mStop) return;
|
if (mStop) {
|
||||||
|
cancelWatchdogAlarm();
|
||||||
|
return;
|
||||||
|
}
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
for (DownloadRequest req: mDownloadsInProgress.values()) {
|
for (DownloadRequest req: mDownloadsInProgress.values()) {
|
||||||
// Check how long it's been since receiving a callback
|
// Check how long it's been since receiving a callback
|
||||||
@ -425,9 +434,7 @@ public class AttachmentDownloadService extends Service implements Runnable {
|
|||||||
}
|
}
|
||||||
// If there are downloads in progress, reset alarm
|
// If there are downloads in progress, reset alarm
|
||||||
if (mDownloadsInProgress.isEmpty()) {
|
if (mDownloadsInProgress.isEmpty()) {
|
||||||
if (mAlarmManager != null && mWatchdogPendingIntent != null) {
|
cancelWatchdogAlarm();
|
||||||
mAlarmManager.cancel(mWatchdogPendingIntent);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// Check whether we can start new downloads...
|
// Check whether we can start new downloads...
|
||||||
if (mConnectivityManager != null && mConnectivityManager.hasConnectivity()) {
|
if (mConnectivityManager != null && mConnectivityManager.hasConnectivity()) {
|
||||||
|
Loading…
Reference in New Issue
Block a user