Make sendBroadcast() really asynchronous

A call to sendBroadcast(Intent) can block in ActivityManagerService

Bug: 368151356
Test: buidk ok
Change-Id: Ibaca4b7aeaff3f3f9c96219a425c8217c1985000
diff --git a/src/com/android/se/Terminal.java b/src/com/android/se/Terminal.java
index e9b0e6c..8a2d005 100644
--- a/src/com/android/se/Terminal.java
+++ b/src/com/android/se/Terminal.java
@@ -80,6 +80,7 @@
     private static final boolean DEBUG = Build.isDebuggable();
     private static final int GET_SERVICE_DELAY_MILLIS = 4 * 1000;
     private static final int EVENT_GET_HAL = 1;
+    private static final int EVENT_NOTIFY_STATE_CHANGE = 2;
 
     private final int mMaxGetHalRetryCount = 5;
     private int mGetHalRetryCount = 0;
@@ -183,7 +184,7 @@
                         mName);
             }
 
-            sendStateChangedBroadcast(state);
+            mHandler.sendMessage(mHandler.obtainMessage(EVENT_NOTIFY_STATE_CHANGE, state));
         }
     }
 
@@ -250,6 +251,9 @@
                         }
                     }
                     break;
+                case EVENT_NOTIFY_STATE_CHANGE:
+                    sendStateChangedBroadcast((boolean) message.obj);
+                    break;
                 default:
                     break;
             }