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; }