summaryrefslogtreecommitdiffstats
path: root/src/com/android/gallery3d/app/PackagesMonitor.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/gallery3d/app/PackagesMonitor.java')
-rw-r--r--src/com/android/gallery3d/app/PackagesMonitor.java29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/com/android/gallery3d/app/PackagesMonitor.java b/src/com/android/gallery3d/app/PackagesMonitor.java
index e4bb8eedb..d8aa8c914 100644
--- a/src/com/android/gallery3d/app/PackagesMonitor.java
+++ b/src/com/android/gallery3d/app/PackagesMonitor.java
@@ -16,6 +16,7 @@
package com.android.gallery3d.app;
+import android.app.IntentService;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
@@ -34,23 +35,23 @@ public class PackagesMonitor extends BroadcastReceiver {
@Override
public void onReceive(final Context context, final Intent intent) {
- final PendingResult result = goAsync();
- new Thread("GalleryPackagesMonitorAsync") {
- @Override
- public void run() {
- try {
- onReceiveAsync(context, intent);
- } catch (Throwable t) {
- Log.e("PackagesMonitor", "onReceiveAsync", t);
- } finally {
- result.finish();
- }
- }
- }.start();
+ intent.setClass(context, AsyncService.class);
+ context.startService(intent);
+ }
+
+ public static class AsyncService extends IntentService {
+ public AsyncService() {
+ super("GalleryPackagesMonitorAsync");
+ }
+
+ @Override
+ protected void onHandleIntent(Intent intent) {
+ onReceiveAsync(this, intent);
+ }
}
// Runs in a background thread.
- private void onReceiveAsync(Context context, Intent intent) {
+ private static void onReceiveAsync(Context context, Intent intent) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
int version = prefs.getInt(KEY_PACKAGES_VERSION, 1);