處理程序或聽衆。事件通知有什麼更好的用途?什麼更快,更高效等?處理程序或聽衆。什麼是更好的?
12
A
回答
3
有沒有這樣的事情作爲一個監聽器類型,它只是一個回調接口的命名約定。所以如果你想在同一個線程上同步處理你的事件,你可以使用它們。
然而,處理程序是一個Android類......您可以使用它來將線程引發事件(例如「下載完成」)的消息和可運行子程序傳遞給需要處理它的線程(例如UI線程)。
7
這是個好問題!
方案使用一個處理程序
我有我的應用程序運行的是Android後臺服務使用專門的處理程序爲Web通信 - 我決定走這條路,因爲處理程序將請求排隊並執行一個接一個,所以我知道一個序列保持不變。
例如,在即時通訊應用程序中,您可能會發現需要維護聊天順序。
方案使用回調
我的後臺服務也採用了類,從硬件讀取(在一個單獨的線程);一些數據可能隨時進入,需要立即處理。對於那個類我實現了一個監聽器/回調接口。
我唯一的問題是是否有任何處理程序的大小禮儀。 我有大約50個獨特的消息:
- 傳出web請求由約25個消息的(每個消息是web服務器上的不同API)
- 每個API返回一個響應,因此還有另一個25進入的卷材 響應
處理程序需要約60%的服務代碼 - 正如您可以想象得到的結果是一個非常大的開關(case {})結構(幾乎1000行代碼)。太大?如何分解它?
相關問題
- 1. 處理聽衆
- 2. Libgdx - 輸入處理[Android]。聽衆沒有聽到什麼?
- 3. 聽衆有更好的做法嗎?
- 4. 角事件處理程序的屬性更改不觸發聽衆
- 5. Java自定義事件處理程序和聽衆
- 6. Javascript迭代事件處理程序/聽衆
- 7. 什麼是MySQL的程序和什麼好處
- 8. 更好的使用jQuery處理程序?
- 9. 處理幾個事件聽衆
- 10. 什麼是回調處理程序
- 11. 什麼是處理程序類?
- 12. C/C++處理程序SIGFPE是什麼?
- 13. 什麼是子應用程序,處理/
- 14. 什麼是xml-rpc處理程序?
- 15. 什麼是一些好的java圖像處理工具或API?
- 16. 什麼是註冊一個事件處理程序的好處隱含
- 17. 什麼是更好的XPath或Linq2Xml
- 18. 什麼是更好的:getSingleResult,或getResultList JPA
- 19. 有什麼更好?許多AsyncTasks或一個處理所有AsyncRequest?
- 20. 有什麼更好?切換可見性或處理文本
- 21. 什麼是處理多個if/else語句的更好方法?
- 22. 處理HTTP響應狀態的更好方法是什麼?
- 23. 處理臨時字符串的更好方法是什麼?
- 24. 處理動態表單內容的更好做法是什麼?
- 25. PHP:什麼是更好的方式來處理表單數據?
- 26. 處理動態UITableViewCell高度的更好方法是什麼?
- 27. Gspread - 更改聽衆?
- 28. 混淆多線程程序的難點/好處是什麼?
- 29. 的Symfony2/Doctrine2:管理聽衆
- 30. 什麼是使用PHP學習信用卡處理的好教程或書籍?
所以,在簡單的線程應用程序Listener中是更好的解決方案。對? – user479211 2010-12-10 11:07:58
這取決於。你的簡單應用程序可能只有一個線程,但該線程必須保持UI的響應......並且這隻能通過不花時間阻塞線程來完成。所以,只要你的事件處理涉及小而簡單的事情,那麼肯定只是使用回調(偵聽器)。如果您必須執行大量工作和/或等待,請使用另一個線程,或者將工作劃分爲Runnables,這些Runnables可以在單個UI線程上(通過Handler)排隊。 – 2010-12-10 11:29:37