summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2013-03-26 00:49:13 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2013-03-26 00:49:13 +0000
commit214cc913ee42361d7597c1e3f06defc53a594ce0 (patch)
treee315d9ca37df6908937f87c0bf586466cf0f5f44
parent77939932609556905c5c623ea747c2c7e7bb4c00 (diff)
parent97d507d95f9885ceb12f2ce2483361b5ed265f9f (diff)
downloadandroid_packages_providers_DownloadProvider-214cc913ee42361d7597c1e3f06defc53a594ce0.tar.gz
android_packages_providers_DownloadProvider-214cc913ee42361d7597c1e3f06defc53a594ce0.tar.bz2
android_packages_providers_DownloadProvider-214cc913ee42361d7597c1e3f06defc53a594ce0.zip
am 97d507d9: Avoid sending messages after HandlerThread.quit().
* commit '97d507d95f9885ceb12f2ce2483361b5ed265f9f': Avoid sending messages after HandlerThread.quit().
-rw-r--r--src/com/android/providers/downloads/DownloadService.java18
1 files changed, 12 insertions, 6 deletions
diff --git a/src/com/android/providers/downloads/DownloadService.java b/src/com/android/providers/downloads/DownloadService.java
index 6c61193c..c519faaf 100644
--- a/src/com/android/providers/downloads/DownloadService.java
+++ b/src/com/android/providers/downloads/DownloadService.java
@@ -189,6 +189,7 @@ public class DownloadService extends Service {
getContentResolver().unregisterContentObserver(mObserver);
mScanner.shutdown();
mUpdateThread.quit();
+ mUpdateThread = null;
if (Constants.LOGVV) {
Log.v(Constants.TAG, "Service onDestroy");
}
@@ -199,8 +200,10 @@ public class DownloadService extends Service {
* Enqueue an {@link #updateLocked()} pass to occur in future.
*/
private void enqueueUpdate() {
- mUpdateHandler.removeMessages(MSG_UPDATE);
- mUpdateHandler.obtainMessage(MSG_UPDATE, mLastStartId, -1).sendToTarget();
+ if (mUpdateThread != null) {
+ mUpdateHandler.removeMessages(MSG_UPDATE);
+ mUpdateHandler.obtainMessage(MSG_UPDATE, mLastStartId, -1).sendToTarget();
+ }
}
/**
@@ -208,10 +211,12 @@ public class DownloadService extends Service {
* catch any finished operations that didn't trigger an update pass.
*/
private void enqueueFinalUpdate() {
- mUpdateHandler.removeMessages(MSG_FINAL_UPDATE);
- mUpdateHandler.sendMessageDelayed(
- mUpdateHandler.obtainMessage(MSG_FINAL_UPDATE, mLastStartId, -1),
- 5 * MINUTE_IN_MILLIS);
+ if (mUpdateThread != null) {
+ mUpdateHandler.removeMessages(MSG_FINAL_UPDATE);
+ mUpdateHandler.sendMessageDelayed(
+ mUpdateHandler.obtainMessage(MSG_FINAL_UPDATE, mLastStartId, -1),
+ 5 * MINUTE_IN_MILLIS);
+ }
}
private static final int MSG_UPDATE = 1;
@@ -269,6 +274,7 @@ public class DownloadService extends Service {
if (stopSelfResult(startId)) {
if (DEBUG_LIFECYCLE) Log.v(TAG, "Nothing left; stopped");
mUpdateThread.quit();
+ mUpdateThread = null;
}
}