在比UI線程(可運行)更獨立的線程中,發送廣播(ACTION_APPWIDGET_UPDATE在我的情況下)是否更好?或者在UI線程上這樣做是可以接受的做法嗎?sendBroadcast通過UI或非UI線程?
1
A
回答
2
1
發送廣播不是一個需要時間(長時間運行)的過程。所以你也可以從主線程(UI線程)發送廣播。
0
正如您所知BroadcastReceiver.onReceive始終在UI線程中運行。你動態地註冊接收者,你可以指定另一個線程處理onReceive()。這是通過registerReceiver()的Handler參數完成的。
所以,如果最好你應該通過UI使用。
1
廣播總是發送異步,你並不需要在一個單獨的線程中運行它,以避免阻塞UI線程。 sendBroadcast()已經是非阻塞的。從sendBroadcast's documentation:
公共抽象無效sendBroadcast(意向意圖)
廣播給定的意圖,所有感興趣的BroadcastReceivers,允許一個可選的要求 權限執行。 這個調用是異步的;它會立即返回,你 將繼續,而接收器運行執行...
相關問題
- 1. 從非UI線程訪問UI線程
- 2. 從非UI線程
- 3. 非UI線程修改UI組件
- 4. 非UI線程上的DispatcherObject
- 5. Asynctask從非UI線程
- 6. Application.GetResourceStream在非UI線程
- 7. 從後臺通知UI線程線程
- 8. Android - 非UI線程的外屏繪圖
- 9. ProgressDialog顯示在非UI線程中
- 10. 非UI線程之間的事件
- 11. Silverlight和回調在非UI線程
- 12. Android,非UI線程中的異常
- 13. Android:更新UI線程非常快
- 14. 在非UI控件創建線程
- 15. 移動到主線程在非UI類
- 16. 在非UI線程中處理錯誤
- 17. 在非UI線程上創建動畫
- 18. LINQ到實體,ToList()從非UI線程
- 19. 如何從非UI線程調用Snackbar.make()?
- 20. 從非UI線程彈出對話框
- 21. 非阻塞UI線程動畫
- 22. 如何附加非UI線程的SynchronizationContext
- 23. 從非UI線程打開Windows窗體
- 24. 從非UI線程顯示AlertDialog
- 25. 從非UI線程更新控件
- 26. 在非UI線程中做一些Android UI的東西
- 27. 如何從iOS中的非UI線程更新UI標籤
- 28. 在非UI線程中構造視圖並在UI線程中使用
- 29. WPF更新基於UI線程控制狀態的非UI線程數據
- 30. Android UI線程
沒錯,但你認爲它會爲應用程序/電話直通可運行這樣做是打火機嗎?使用runnable會有什麼不足嗎? –