diff options
| author | 2016-03-16 15:20:04 +0800 | |
|---|---|---|
| committer | 2016-03-18 10:30:59 +0800 | |
| commit | b49420a7151a98b3afa711f73d8dcea41f2b5101 (patch) | |
| tree | 72cfcdaf00e18951f26b2268a4fdd30f1bb808f7 | |
| parent | 50fd2aa8b4c4ba7e01f444147beadef0dfdd8ece (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.java | 4 |
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) { |