From bb0be068e9182278d30efd42cad5cf369ff93db4 Mon Sep 17 00:00:00 2001 From: Hung-ying Tyan Date: Wed, 21 Mar 2012 15:08:16 +0800 Subject: [PATCH] Make PackagesMonitor go async to offload package event processing from main thread. Bug: 6109890 Change-Id: I77e1fad9a4ac24020eed68d53ca7e1d253248890 --- src/com/android/gallery3d/app/PackagesMonitor.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/com/android/gallery3d/app/PackagesMonitor.java b/src/com/android/gallery3d/app/PackagesMonitor.java index 9a7a89c7b..e4bb8eedb 100644 --- a/src/com/android/gallery3d/app/PackagesMonitor.java +++ b/src/com/android/gallery3d/app/PackagesMonitor.java @@ -33,7 +33,24 @@ public class PackagesMonitor extends BroadcastReceiver { } @Override - public void onReceive(Context context, Intent intent) { + 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(); + } + + // Runs in a background thread. + private void onReceiveAsync(Context context, Intent intent) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); int version = prefs.getInt(KEY_PACKAGES_VERSION, 1); -- 2.11.0