diff --git a/service/src/com/android/car/pm/CarPackageManagerService.java b/service/src/com/android/car/pm/CarPackageManagerService.java
index e8e4315..fb11fd8 100644
--- a/service/src/com/android/car/pm/CarPackageManagerService.java
+++ b/service/src/com/android/car/pm/CarPackageManagerService.java
@@ -1308,7 +1308,8 @@
 
     private void blockTopActivityIfNecessary(TopTaskInfoContainer topTask) {
         synchronized (mLock) {
-            if (mTopActivityWithDialogPerDisplay.contains(topTask.displayId)
+            if (!topTask.topActivity.equals(mActivityBlockingActivity)
+                    && mTopActivityWithDialogPerDisplay.contains(topTask.displayId)
                     && !topTask.topActivity.equals(
                             mTopActivityWithDialogPerDisplay.get(topTask.displayId))) {
                 // Clear top activity-with-dialog if the activity has changed on this display.
diff --git a/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java b/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
index b8c4eab..0978d74 100644
--- a/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
+++ b/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
@@ -29,6 +29,7 @@
 import android.app.AlertDialog;
 import android.app.UiAutomation;
 import android.car.Car;
+import android.car.content.pm.CarPackageManager;
 import android.car.drivingstate.CarDrivingStateEvent;
 import android.car.drivingstate.CarDrivingStateManager;
 import android.content.ComponentName;
@@ -67,6 +68,7 @@
     private static final long ACTIVITY_TIMEOUT_MS = 5000;
 
     private CarDrivingStateManager mCarDrivingStateManager;
+    private CarPackageManager mCarPackageManager;
 
     private UiDevice mDevice;
 
@@ -78,6 +80,8 @@
         Car car = Car.createCar(getContext());
         mCarDrivingStateManager = (CarDrivingStateManager)
                 car.getCarManager(Car.CAR_DRIVING_STATE_SERVICE);
+        mCarPackageManager = (CarPackageManager)
+                car.getCarManager(Car.PACKAGE_SERVICE);
         assertNotNull(mCarDrivingStateManager);
 
         Configurator.getInstance()
@@ -150,6 +154,10 @@
                 CarAppActivity.class.getSimpleName())),
                 UI_TIMEOUT_MS)).isNotNull();
         assertBlockingActivityNotFound();
+        assertThat(mCarPackageManager.isActivityDistractionOptimized(
+                getTestContext().getPackageName(),
+                CarAppActivity.class.getName()
+        )).isTrue();
 
         getContext().sendBroadcast(new Intent().setAction(ACTION_SHOW_DIALOG));
         assertThat(mDevice.wait(Until.findObject(By.text(DoActivity.DIALOG_TITLE)),
@@ -157,6 +165,10 @@
 
         assertThat(mDevice.wait(Until.findObject(By.res(ACTIVITY_BLOCKING_ACTIVITY_TEXTVIEW_ID)),
                 UI_TIMEOUT_MS)).isNotNull();
+        assertThat(mCarPackageManager.isActivityDistractionOptimized(
+                getTestContext().getPackageName(),
+                CarAppActivity.class.getName()
+        )).isFalse();
     }
 
     @Test
