Loading services/core/java/com/android/server/infra/AbstractMasterSystemService.java +29 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,9 @@ import android.database.ContentObserver; import android.net.Uri; import android.os.Binder; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Process; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -194,6 +197,10 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem private final MyPackageMonitor mPackageMonitor; private static HandlerThread sPackageMonitorHandlerThread; private static final Object sPackageMonitorLock = new Object(); /** * Default constructor. * Loading Loading @@ -290,10 +297,27 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem } }); } mPackageMonitor = new MyPackageMonitor(/* supportsPackageRestartQuery */ true); startTrackingPackageChanges(); } private void startTrackingPackageChanges() { synchronized (sPackageMonitorLock) { if (sPackageMonitorHandlerThread == null) { sPackageMonitorHandlerThread = new HandlerThread(mTag + "PkgMonitorThread", Process.THREAD_PRIORITY_BACKGROUND); // Start a new dedicated background thread for listening to package changes try { sPackageMonitorHandlerThread.start(); } catch (IllegalThreadStateException e) { Slog.w(mTag, "Thread is already started: " + e.getMessage()); } } } mPackageMonitor.startTrackingPackageChanges(sPackageMonitorHandlerThread.getLooper()); } @Override // from SystemService public void onBootPhase(int phase) { if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { Loading Loading @@ -993,6 +1017,11 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem super(supportsPackageRestartQuery); } public void startTrackingPackageChanges(Looper looper) { // package changes this.register(getContext(), looper, UserHandle.ALL, true); } @Override public void onPackageUpdateStarted(@NonNull String packageName, int uid) { if (verbose) Slog.v(mTag, "onPackageUpdateStarted(): " + packageName); Loading Loading @@ -1242,11 +1271,6 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem } } private void startTrackingPackageChanges() { // package changes mPackageMonitor.register(getContext(), null, UserHandle.ALL, true); } @GuardedBy("mLock") @SuppressWarnings("GuardedBy") // ErrorProne requires this.mLock for // handleServiceRemovedMultiModeLocked which is the same Loading Loading
services/core/java/com/android/server/infra/AbstractMasterSystemService.java +29 −5 Original line number Diff line number Diff line Loading @@ -29,6 +29,9 @@ import android.database.ContentObserver; import android.net.Uri; import android.os.Binder; import android.os.Handler; import android.os.HandlerThread; import android.os.Looper; import android.os.Process; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; Loading Loading @@ -194,6 +197,10 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem private final MyPackageMonitor mPackageMonitor; private static HandlerThread sPackageMonitorHandlerThread; private static final Object sPackageMonitorLock = new Object(); /** * Default constructor. * Loading Loading @@ -290,10 +297,27 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem } }); } mPackageMonitor = new MyPackageMonitor(/* supportsPackageRestartQuery */ true); startTrackingPackageChanges(); } private void startTrackingPackageChanges() { synchronized (sPackageMonitorLock) { if (sPackageMonitorHandlerThread == null) { sPackageMonitorHandlerThread = new HandlerThread(mTag + "PkgMonitorThread", Process.THREAD_PRIORITY_BACKGROUND); // Start a new dedicated background thread for listening to package changes try { sPackageMonitorHandlerThread.start(); } catch (IllegalThreadStateException e) { Slog.w(mTag, "Thread is already started: " + e.getMessage()); } } } mPackageMonitor.startTrackingPackageChanges(sPackageMonitorHandlerThread.getLooper()); } @Override // from SystemService public void onBootPhase(int phase) { if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) { Loading Loading @@ -993,6 +1017,11 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem super(supportsPackageRestartQuery); } public void startTrackingPackageChanges(Looper looper) { // package changes this.register(getContext(), looper, UserHandle.ALL, true); } @Override public void onPackageUpdateStarted(@NonNull String packageName, int uid) { if (verbose) Slog.v(mTag, "onPackageUpdateStarted(): " + packageName); Loading Loading @@ -1242,11 +1271,6 @@ public abstract class AbstractMasterSystemService<M extends AbstractMasterSystem } } private void startTrackingPackageChanges() { // package changes mPackageMonitor.register(getContext(), null, UserHandle.ALL, true); } @GuardedBy("mLock") @SuppressWarnings("GuardedBy") // ErrorProne requires this.mLock for // handleServiceRemovedMultiModeLocked which is the same Loading