diff options
Diffstat (limited to 'src/com/android/gallery3d/app/PackagesMonitor.java')
-rw-r--r-- | src/com/android/gallery3d/app/PackagesMonitor.java | 29 |
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); |