From 63d7a9dd6a1a803241aa42fa8af8c387cbbbce19 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Fri, 18 Nov 2016 12:50:28 -0800 Subject: [PATCH] Define getLooper() method The default implementation uses the main looper to handle service operations. This is generally okay until we have to make network calls to retrieve resolution data. Bug: 25119046 Test: manual Change-Id: I22b0f279e6c1fde21f207578d2930ab4858bbc78 --- api/system-current.txt | 1 + core/java/android/app/EphemeralResolverService.java | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/api/system-current.txt b/api/system-current.txt index ad4c13506331c..1bacba2e9bfeb 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -4554,6 +4554,7 @@ package android.app { public abstract class EphemeralResolverService extends android.app.Service { ctor public EphemeralResolverService(); method public final void attachBaseContext(android.content.Context); + method public android.os.Looper getLooper(); method public final android.os.IBinder onBind(android.content.Intent); method public abstract deprecated java.util.List onEphemeralResolveInfoList(int[], int); method public android.content.pm.EphemeralResolveInfo onGetEphemeralIntentFilter(java.lang.String); diff --git a/core/java/android/app/EphemeralResolverService.java b/core/java/android/app/EphemeralResolverService.java index 7e3f626711bfe..45652ef7c37dc 100644 --- a/core/java/android/app/EphemeralResolverService.java +++ b/core/java/android/app/EphemeralResolverService.java @@ -74,10 +74,17 @@ public abstract class EphemeralResolverService extends Service { throw new IllegalStateException("Must define"); } + /** + * Returns a {@link Looper} to perform service operations on. + */ + public Looper getLooper() { + return getBaseContext().getMainLooper(); + } + @Override public final void attachBaseContext(Context base) { super.attachBaseContext(base); - mHandler = new ServiceHandler(base.getMainLooper()); + mHandler = new ServiceHandler(getLooper()); } @Override