summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author wangshujie <wangshujie@xiaomi.com> 2016-03-16 15:20:04 +0800
committer wangshujie <wangshujie@xiaomi.com> 2016-03-18 10:30:59 +0800
commitb49420a7151a98b3afa711f73d8dcea41f2b5101 (patch)
tree72cfcdaf00e18951f26b2268a4fdd30f1bb808f7
parent50fd2aa8b4c4ba7e01f444147beadef0dfdd8ece (diff)
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 <wangshujie@xiaomi.com>
-rw-r--r--services/core/java/com/android/server/job/controllers/ConnectivityController.java4
1 files changed, 3 insertions, 1 deletions
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) {