2015-05-07 81 views

回答

2

您可以在文檔閱讀sendBroadcast

這個調用是異步的;它會立即返回,並且您將在接收器運行時繼續執行。

所以它是完全安全地調用它的UI線程

1

發送廣播不是一個需要時間(長時間運行)的過程。所以你也可以從主線程(UI線程)發送廣播。

+0

沒錯,但你認爲它會爲應用程序/電話直通可運行這樣做是打火機嗎?使用runnable會有什麼不足嗎? –

0

正如您所知BroadcastReceiver.onReceive始終在UI線程中運行。你動態地註冊接收者,你可以指定另一個線程處理onReceive()。這是通過registerReceiver()的Handler參數完成的。

所以,如果最好你應該通過UI使用。

1

廣播總是發送異步,你並不需要在一個單獨的線程中運行它,以避免阻塞UI線程。 sendBroadcast()已經是非阻塞的。從sendBroadcast's documentation

公共抽象無效sendBroadcast(意向意圖)

廣播給定的意圖,所有感興趣的BroadcastReceivers,允許一個可選的要求 權限執行。 這個調用是異步的;它會立即返回,你 將繼續,而接收器運行執行...