From b49420a7151a98b3afa711f73d8dcea41f2b5101 Mon Sep 17 00:00:00 2001 From: wangshujie Date: Wed, 16 Mar 2016 15:20:04 +0800 Subject: JobScheduler: handle connectivity action in bg looper in rare cases InputDispatcher relies on the SystemServer to enqueue the input events and wake it up (eg. with some accessibility services enabled which have their own inputfilters).Receivers in the main thread may block events dispatching and then we will peceive jank in windows. issue: https://code.google.com/p/android/issues/detail?id=204067 Change-Id: I1f47cc5cb8fb2b2aa0cee7a8ed4bf50efb81e477 Signed-off-by: wangshujie --- .../com/android/server/job/controllers/ConnectivityController.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/job/controllers/ConnectivityController.java b/services/core/java/com/android/server/job/controllers/ConnectivityController.java index daba0d9c36d3..2d5e11a6b632 100644 --- a/services/core/java/com/android/server/job/controllers/ConnectivityController.java +++ b/services/core/java/com/android/server/job/controllers/ConnectivityController.java @@ -27,6 +27,7 @@ import android.os.ServiceManager; import android.os.UserHandle; import android.util.Slog; +import com.android.internal.os.BackgroundThread; import com.android.server.ConnectivityService; import com.android.server.job.JobSchedulerService; import com.android.server.job.StateChangedListener; @@ -70,7 +71,8 @@ public class ConnectivityController extends StateController implements IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); mContext.registerReceiverAsUser( - mConnectivityChangedReceiver, UserHandle.ALL, intentFilter, null, null); + mConnectivityChangedReceiver, UserHandle.ALL, intentFilter, null, + BackgroundThread.getHandler()); ConnectivityService cs = (ConnectivityService)ServiceManager.getService(Context.CONNECTIVITY_SERVICE); if (cs != null) { -- cgit v1.2.3-59-g8ed1b