Clean receivers completely when forceStop the process

when forceStop is called, then the broadcast-receiver will be
cleaned up.However, only receivers of the userId is cleaned.
When the userId is not UserHandle.USER_ALL and the userId of
BroadcastRecord is UserHandle.USER_ALL. Then the receiver of
this BR will not be cleaned up. Thus the receiver of this
process with this userId will be dispatched. What's worse, it
may cause severe problems under multi-user

It should be conflict with the intention of forceStop method

https://code.google.com/p/android/issues/detail?id=259998

Test: am broadcast -a xxx --user, and then force stop the
process responded to action xxx, if this broadcast is stucked
for a while. the process will be started

Change-Id: I38ef4116e16c97f257da37bc08e5ef3f64eff7ef
1 file changed