簡體   English   中英

在服務中播放媒體異步任務會鎖定其他異步任務鎖

[英]Playing media asynctask in a service cusses other asynctasks lock

我正在使用AsyncTask播放媒體,並且正在使用服務。 問題是,當我的AsyncTask(在Service中)正在運行時,我使用AsyncTask與Web服務器進行通信的應用程序的另一部分在播放完成之前無法正常工作。 (播放媒體不緩沖它)。

我已經嘗試刪除AsyncTask並使用新的線程,但無法在此模式下更新UI。

我該怎么解決?

您可能不希望同時使用AsynctaskService Service是為長時間運行的后台任務而設計的。 “異步任務”旨在輕松啟動新線程,執行一些長時間運行的任務,然后將數據發送到UI線程。

UI線程只有一個,因此,如果要更新UI,則會阻止用戶交互。

如果您正在播放音樂,則可能希望Service生成新的Thread以便它可以在后台不斷下載歌曲。 例如,如果用戶按下一個按鈕並加載了一個視頻,則您可能希望Asynctask執行下載。

通常,可以使用Asynctask根據用戶請求下載媒體文件(或者,如果您是在后台下載的,則可以使用Service )。 然后會交換數據並可以使用Android的MediaPlayer工具播放視頻文件:

http://developer.android.com/guide/topics/media/mediaplayer.html

請記住,與Asynctask不同,創建Service並不自動意味着您已經創建了一個新Thread Service可以在UI線程上運行。 一般來說,盡管如此,大多數Service的用例都要求它們啟動一個新的Thread來進行工作。

最后,我使用了服務處理程序來創建發布延遲

暫無
暫無

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

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