diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 451b3a5256ac34dfcaf7d2cb615d182d31804752..397a841db6049b6208155448f45f8df6ec538a05 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -6411,16 +6411,25 @@ public final class Settings implements Watchable, Snappable, ResilientAtomicFile
     }
 
     boolean clearPersistentPreferredActivity(IntentFilter filter, int userId) {
+        ArrayList<PersistentPreferredActivity> removed = null;
         PersistentPreferredIntentResolver ppir = mPersistentPreferredActivities.get(userId);
         Iterator<PersistentPreferredActivity> it = ppir.filterIterator();
         boolean changed = false;
         while (it.hasNext()) {
             PersistentPreferredActivity ppa = it.next();
             if (IntentFilter.filterEquals(ppa.getIntentFilter(), filter)) {
+                if (removed == null) {
+                    removed = new ArrayList<>();
+                }
+                removed.add(ppa);
+            }
+        }
+        if (removed != null) {
+            for (int i = 0; i < removed.size(); i++) {
+                PersistentPreferredActivity ppa = removed.get(i);
                 ppir.removeFilter(ppa);
-                changed = true;
-                break;
             }
+            changed = true;
         }
         if (changed) {
             onChanged();