diff options
| author | 2015-03-26 12:29:51 -0700 | |
|---|---|---|
| committer | 2015-03-26 12:31:54 -0700 | |
| commit | 1221b0628d0b896102c20545b30fa7bafa08ae32 (patch) | |
| tree | 61ddf7399b112385a942b9aed8bde7d88ae5172a | |
| parent | 5093cd36a7d58d5cd44a2cdd868c3e4c6e0c2720 (diff) | |
Properly unregister TrustAgentWrapper's broadcast receiver
Bug: 19820505
Change-Id: I6f9463a54aa1c33d485b8f55c5f22f18535b0d29
| -rw-r--r-- | services/core/java/com/android/server/trust/TrustAgentWrapper.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/trust/TrustAgentWrapper.java b/services/core/java/com/android/server/trust/TrustAgentWrapper.java index 010931387671..dec195d8172c 100644 --- a/services/core/java/com/android/server/trust/TrustAgentWrapper.java +++ b/services/core/java/com/android/server/trust/TrustAgentWrapper.java @@ -272,13 +272,14 @@ public class TrustAgentWrapper { alarmFilter.addDataScheme(mAlarmIntent.getScheme()); final String pathUri = mAlarmIntent.toUri(Intent.URI_INTENT_SCHEME); alarmFilter.addDataPath(pathUri, PatternMatcher.PATTERN_LITERAL); - mContext.registerReceiver(mBroadcastReceiver, alarmFilter, PERMISSION, null); // Schedules a restart for when connecting times out. If the connection succeeds, // the restart is canceled in mCallback's onConnected. scheduleRestart(); mBound = context.bindServiceAsUser(intent, mConnection, Context.BIND_AUTO_CREATE, user); - if (!mBound) { + if (mBound) { + mContext.registerReceiver(mBroadcastReceiver, alarmFilter, PERMISSION, null); + } else { Log.e(TAG, "Can't bind to TrustAgent " + mName.flattenToShortString()); } } @@ -398,7 +399,6 @@ public class TrustAgentWrapper { } public void destroy() { - mContext.unregisterReceiver(mBroadcastReceiver); mHandler.removeMessages(MSG_RESTART_TIMEOUT); if (!mBound) { @@ -408,6 +408,7 @@ public class TrustAgentWrapper { mTrustManagerService.mArchive.logAgentStopped(mUserId, mName); mContext.unbindService(mConnection); mBound = false; + mContext.unregisterReceiver(mBroadcastReceiver); mTrustAgentService = null; mSetTrustAgentFeaturesToken = null; mHandler.sendEmptyMessage(MSG_REVOKE_TRUST); |