簡體   English   中英

Android如何在我的線程上執行回調?

[英]How does Android perform callbacks on my thread?

我看到類似的問題,但是答案各不相同,而且不統一。

考慮一個MediaPlayer和一個注冊的偵聽器(例如,用於完成播放或onPrepared等)。 我對其進行了測試,並在與開始播放的線程相同的線程上執行了回調。 由於我的應用是游戲,因此該線程不是 UI線程,而是游戲的線程(順便說一句,沒有任何處理程序)。

是否保證何時調用? 我的游戲線程一直在運行,所以我無法真正想象系統如何以及在什么限制(如果有)的情況下調用我的回調。 我的游戲線程一直在工作,因此必須在操作(?)的中間調用回調函數-但后來我不明白。

經過更多測試,並將線程名稱記錄到正確的位置后,我得到了答案。

如果您的線程(創建MediaPlayer的線程)不是Looper,則Android顯然無法向其發送消息。 因此它將從您的UI線程調用這些回調(也通過消息隊列機制,正如Martin James所說的那樣)。 我的測試證實了這一點,並且在概念上也是正確的(因為它適合Android體系結構的Looper概念)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM