Merge "Unsubscribe listeners when stopping UserBackupManagerService" into qt-r1-dev
This commit is contained in:
@@ -367,6 +367,9 @@ public class UserBackupManagerService {
|
||||
private long mCurrentToken = 0;
|
||||
@Nullable private File mAncestralSerialNumberFile;
|
||||
|
||||
private final ContentObserver mSetupObserver;
|
||||
private final BroadcastReceiver mRunBackupReceiver;
|
||||
private final BroadcastReceiver mRunInitReceiver;
|
||||
|
||||
/**
|
||||
* Creates an instance of {@link UserBackupManagerService} and initializes state for it. This
|
||||
@@ -493,11 +496,11 @@ public class UserBackupManagerService {
|
||||
mAutoRestore = Settings.Secure.getIntForUser(resolver,
|
||||
Settings.Secure.BACKUP_AUTO_RESTORE, 1, userId) != 0;
|
||||
|
||||
ContentObserver setupObserver = new SetupObserver(this, mBackupHandler);
|
||||
mSetupObserver = new SetupObserver(this, mBackupHandler);
|
||||
resolver.registerContentObserver(
|
||||
Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE),
|
||||
/* notifyForDescendents */ false,
|
||||
setupObserver,
|
||||
mSetupObserver,
|
||||
mUserId);
|
||||
|
||||
mBaseStateDir = checkNotNull(baseStateDir, "baseStateDir cannot be null");
|
||||
@@ -516,21 +519,21 @@ public class UserBackupManagerService {
|
||||
mBackupPasswordManager = new BackupPasswordManager(mContext, mBaseStateDir, mRng);
|
||||
|
||||
// Receivers for scheduled backups and transport initialization operations.
|
||||
BroadcastReceiver runBackupReceiver = new RunBackupReceiver(this);
|
||||
mRunBackupReceiver = new RunBackupReceiver(this);
|
||||
IntentFilter filter = new IntentFilter();
|
||||
filter.addAction(RUN_BACKUP_ACTION);
|
||||
context.registerReceiverAsUser(
|
||||
runBackupReceiver,
|
||||
mRunBackupReceiver,
|
||||
UserHandle.of(userId),
|
||||
filter,
|
||||
android.Manifest.permission.BACKUP,
|
||||
/* scheduler */ null);
|
||||
|
||||
BroadcastReceiver runInitReceiver = new RunInitializeReceiver(this);
|
||||
mRunInitReceiver = new RunInitializeReceiver(this);
|
||||
filter = new IntentFilter();
|
||||
filter.addAction(RUN_INITIALIZE_ACTION);
|
||||
context.registerReceiverAsUser(
|
||||
runInitReceiver,
|
||||
mRunInitReceiver,
|
||||
UserHandle.of(userId),
|
||||
filter,
|
||||
android.Manifest.permission.BACKUP,
|
||||
@@ -599,6 +602,12 @@ public class UserBackupManagerService {
|
||||
|
||||
/** Cleans up state when the user of this service is stopped. */
|
||||
void tearDownService() {
|
||||
mAgentTimeoutParameters.stop();
|
||||
mConstants.stop();
|
||||
mContext.getContentResolver().unregisterContentObserver(mSetupObserver);
|
||||
mContext.unregisterReceiver(mRunBackupReceiver);
|
||||
mContext.unregisterReceiver(mRunInitReceiver);
|
||||
mContext.unregisterReceiver(mPackageTrackingReceiver);
|
||||
mUserBackupThread.quit();
|
||||
}
|
||||
|
||||
@@ -747,7 +756,7 @@ public class UserBackupManagerService {
|
||||
|
||||
@VisibleForTesting
|
||||
BroadcastReceiver getPackageTrackingReceiver() {
|
||||
return mBroadcastReceiver;
|
||||
return mPackageTrackingReceiver;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -874,7 +883,7 @@ public class UserBackupManagerService {
|
||||
filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
|
||||
filter.addDataScheme("package");
|
||||
mContext.registerReceiverAsUser(
|
||||
mBroadcastReceiver,
|
||||
mPackageTrackingReceiver,
|
||||
UserHandle.of(mUserId),
|
||||
filter,
|
||||
/* broadcastPermission */ null,
|
||||
@@ -885,7 +894,7 @@ public class UserBackupManagerService {
|
||||
sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
|
||||
sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
|
||||
mContext.registerReceiverAsUser(
|
||||
mBroadcastReceiver,
|
||||
mPackageTrackingReceiver,
|
||||
UserHandle.of(mUserId),
|
||||
sdFilter,
|
||||
/* broadcastPermission */ null,
|
||||
@@ -1158,7 +1167,7 @@ public class UserBackupManagerService {
|
||||
* A {@link BroadcastReceiver} tracking changes to packages and sd cards in order to update our
|
||||
* internal bookkeeping.
|
||||
*/
|
||||
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
|
||||
private BroadcastReceiver mPackageTrackingReceiver = new BroadcastReceiver() {
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
if (MORE_DEBUG) {
|
||||
Slog.d(TAG, "Received broadcast " + intent);
|
||||
|
||||
Reference in New Issue
Block a user