diff options
author | Jeff Sharkey <jsharkey@android.com> | 2013-03-26 00:49:13 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-03-26 00:49:13 +0000 |
commit | 214cc913ee42361d7597c1e3f06defc53a594ce0 (patch) | |
tree | e315d9ca37df6908937f87c0bf586466cf0f5f44 | |
parent | 77939932609556905c5c623ea747c2c7e7bb4c00 (diff) | |
parent | 97d507d95f9885ceb12f2ce2483361b5ed265f9f (diff) | |
download | android_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.java | 18 |
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; } } |