diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index d7b761d289a72..328fc8b692bf1 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -35,6 +35,7 @@ import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.ActivityManagerInternal; import android.app.ActivityManagerNative; +import android.app.BroadcastOptions; import android.app.IActivityManager; import android.app.IStopUserCallback; import android.app.KeyguardManager; @@ -2924,7 +2925,13 @@ public class UserManagerService extends IUserManager.Stub { final Intent broadcast = new Intent(UserManager.ACTION_USER_RESTRICTIONS_CHANGED) .setFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY); - mContext.sendBroadcastAsUser(broadcast, UserHandle.of(userId)); + // Setting the MOST_RECENT policy allows us to discard older broadcasts + // still waiting to be delivered. + final Bundle options = BroadcastOptions.makeBasic() + .setDeliveryGroupPolicy(BroadcastOptions.DELIVERY_GROUP_POLICY_MOST_RECENT) + .toBundle(); + mContext.sendBroadcastAsUser(broadcast, UserHandle.of(userId), + null /* receiverPermission */, options); } }); }