2011-08-17 65 views
0

這裏是我的問題:的Android服務,使應用程序掛起

在我的應用程序有喜歡的應用程序的場景自動檢測超聲音,實習生含有it.And一些信息,這個聲音應該在零售肖普而用戶播放進入商店我的應用程序應該檢測商店每個入口處播放的聲音。

因此,爲此我通過擴展Service類創建了一個Service,它始終保持運行。並且我通過爲它創建單獨的線程 來從Activity啓動此服務。

這裏是我的問題:

當我從線程啓動的服務它做工精細,並沒有用戶界面是hanged.After一些時候,我仍與UI處理,然後我的應用得到了掛我得到了日誌貓ANR錯誤。

那麼我該如何解決這個問題。

從線程satrting服務是正確的方式..? 任何啓動服務的好方法。? 如何解決我的代碼中的ANR錯誤?

任何人都可以幫我在這。我嘗試了很多帖子,但任何一個都不適合我。

非常感謝。

回答

1

AsyncTask將解決此目的。你應該做反之亦然。您也可以從主UI線程開始服務,並且您現在在Service中執行的任務,您可以在單獨的線程中完成此任務。你可以從服務啓動線程。

所以它應該是 - 活動 - >服務 - >線程您還可以使用AsyncTask,它只是一個後臺線程。

Regards, Brijesh

+0

感謝您的回覆。 –

+0

嗨brijesh,在我的情況:我有活動 - >線程(從我開始服務) - >服務 - >線程(我在哪裏做funcionlaity無限)。而線程運行無限可以處理應用程序UI。但一段時間後應用程序被絞死。 –

+0

你應該做的第一件事是活動 - >線程 - >服務。從中刪除線程部分。因爲我看到沒有必要使用Thread來保存你的過程。你還可以粘貼ANR堆棧軌道。我想看看獲得ANR的原因。謝謝 –