Merge "Move JobScheduler off the main thread." into udc-dev

This commit is contained in:
Kweku Adams
2023-03-08 21:06:00 +00:00
committed by Android (Google) Code Review
7 changed files with 13 additions and 9 deletions

View File

@@ -533,7 +533,8 @@ class JobConcurrencyManager {
mIdleContexts.add(
mInjector.createJobServiceContext(mService, this,
mNotificationCoordinator, batteryStats,
mService.mJobPackageTracker, mContext.getMainLooper()));
mService.mJobPackageTracker,
AppSchedulingModuleThread.get().getLooper()));
}
}
@@ -1925,7 +1926,7 @@ class JobConcurrencyManager {
return mInjector.createJobServiceContext(mService, this, mNotificationCoordinator,
IBatteryStats.Stub.asInterface(
ServiceManager.getService(BatteryStats.SERVICE_NAME)),
mService.mJobPackageTracker, mContext.getMainLooper());
mService.mJobPackageTracker, AppSchedulingModuleThread.get().getLooper());
}
@GuardedBy("mLock")

View File

@@ -2009,7 +2009,7 @@ public class JobSchedulerService extends com.android.server.SystemService
mActivityManagerInternal = Objects.requireNonNull(
LocalServices.getService(ActivityManagerInternal.class));
mHandler = new JobHandler(context.getMainLooper());
mHandler = new JobHandler(AppSchedulingModuleThread.get().getLooper());
mConstants = new Constants();
mConstantsObserver = new ConstantsObserver();
mJobSchedulerStub = new JobSchedulerStub();

View File

@@ -256,7 +256,7 @@ public final class ConnectivityController extends RestrictingController implemen
public ConnectivityController(JobSchedulerService service,
@NonNull FlexibilityController flexibilityController) {
super(service);
mHandler = new CcHandler(mContext.getMainLooper());
mHandler = new CcHandler(AppSchedulingModuleThread.get().getLooper());
mConnManager = mContext.getSystemService(ConnectivityManager.class);
mNetPolicyManagerInternal = LocalServices.getService(NetworkPolicyManagerInternal.class);

View File

@@ -33,6 +33,7 @@ import android.util.SparseArray;
import android.util.TimeUtils;
import android.util.proto.ProtoOutputStream;
import com.android.server.AppSchedulingModuleThread;
import com.android.server.job.JobSchedulerService;
import com.android.server.job.StateControllerProto;
import com.android.server.job.StateControllerProto.ContentObserverController.Observer.TriggerContentData;
@@ -70,7 +71,7 @@ public final class ContentObserverController extends StateController {
public ContentObserverController(JobSchedulerService service) {
super(service);
mHandler = new Handler(mContext.getMainLooper());
mHandler = new Handler(AppSchedulingModuleThread.get().getLooper());
}
@Override

View File

@@ -36,6 +36,7 @@ import android.util.SparseBooleanArray;
import android.util.proto.ProtoOutputStream;
import com.android.internal.util.ArrayUtils;
import com.android.server.AppSchedulingModuleThread;
import com.android.server.DeviceIdleInternal;
import com.android.server.LocalServices;
import com.android.server.job.JobSchedulerService;
@@ -127,7 +128,7 @@ public final class DeviceIdleJobsController extends StateController {
public DeviceIdleJobsController(JobSchedulerService service) {
super(service);
mHandler = new DeviceIdleJobsDelayHandler(mContext.getMainLooper());
mHandler = new DeviceIdleJobsDelayHandler(AppSchedulingModuleThread.get().getLooper());
// Register for device idle mode changes
mPowerManager = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mLocalDeviceIdleController =

View File

@@ -130,7 +130,7 @@ public class PrefetchController extends StateController {
public PrefetchController(JobSchedulerService service) {
super(service);
mPcConstants = new PcConstants();
mHandler = new PcHandler(mContext.getMainLooper());
mHandler = new PcHandler(AppSchedulingModuleThread.get().getLooper());
mThresholdAlarmListener = new ThresholdAlarmListener(
mContext, AppSchedulingModuleThread.get().getLooper());
mUsageStatsManagerInternal = LocalServices.getService(UsageStatsManagerInternal.class);

View File

@@ -560,13 +560,14 @@ public final class QuotaController extends StateController {
@NonNull BackgroundJobsController backgroundJobsController,
@NonNull ConnectivityController connectivityController) {
super(service);
mHandler = new QcHandler(mContext.getMainLooper());
mHandler = new QcHandler(AppSchedulingModuleThread.get().getLooper());
mAlarmManager = mContext.getSystemService(AlarmManager.class);
mQcConstants = new QcConstants();
mBackgroundJobsController = backgroundJobsController;
mConnectivityController = connectivityController;
mIsEnabled = !mConstants.USE_TARE_POLICY;
mInQuotaAlarmQueue = new InQuotaAlarmQueue(mContext, mContext.getMainLooper());
mInQuotaAlarmQueue =
new InQuotaAlarmQueue(mContext, AppSchedulingModuleThread.get().getLooper());
// Set up the app standby bucketing tracker
AppStandbyInternal appStandby = LocalServices.getService(AppStandbyInternal.class);