Merge "Clear reference to the IIntentReceiver in order to avoid memory leak"
This commit is contained in:
@@ -11035,6 +11035,9 @@ public final class ActivityManagerService extends ActivityManagerNative
|
|||||||
performReceiveLocked(r.callerApp, r.resultTo,
|
performReceiveLocked(r.callerApp, r.resultTo,
|
||||||
new Intent(r.intent), r.resultCode,
|
new Intent(r.intent), r.resultCode,
|
||||||
r.resultData, r.resultExtras, false, false);
|
r.resultData, r.resultExtras, false, false);
|
||||||
|
// Set this to null so that the reference
|
||||||
|
// (local and remote) isnt kept in the mBroadcastHistory.
|
||||||
|
r.resultTo = null;
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Slog.w(TAG, "Failure sending broadcast result of " + r.intent, e);
|
Slog.w(TAG, "Failure sending broadcast result of " + r.intent, e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class BroadcastRecord extends Binder {
|
|||||||
final boolean initialSticky; // initial broadcast from register to sticky?
|
final boolean initialSticky; // initial broadcast from register to sticky?
|
||||||
final String requiredPermission; // a permission the caller has required
|
final String requiredPermission; // a permission the caller has required
|
||||||
final List receivers; // contains BroadcastFilter and ResolveInfo
|
final List receivers; // contains BroadcastFilter and ResolveInfo
|
||||||
final IIntentReceiver resultTo; // who receives final result if non-null
|
IIntentReceiver resultTo; // who receives final result if non-null
|
||||||
long dispatchTime; // when dispatch started on this set of receivers
|
long dispatchTime; // when dispatch started on this set of receivers
|
||||||
long receiverTime; // when current receiver started for timeouts.
|
long receiverTime; // when current receiver started for timeouts.
|
||||||
long finishTime; // when we finished the broadcast.
|
long finishTime; // when we finished the broadcast.
|
||||||
|
|||||||
Reference in New Issue
Block a user