2009-11-28 86 views
0

我正在擴展IntentService類以在Android上運行後臺服務。該服務立即啓動後啓動。我想定期從這項服務中彈出一個用戶輸入框。所以,我嘗試從服務中調用一個活動,但它沒有幫助。出現Force Close的可怕框並且服務消失。 任何人都可以提出一些方法來調用後臺服務的活動嗎?Android - 服務中的活動?

謝謝!

+1

您是否嘗試過使用LogCat來查看導致強制關閉框出現的內容? – 2009-11-28 19:17:10

回答

2

我想定期從 這個服務彈出一個用戶輸入框。

請重新考慮這個計劃。使用Notification。你的用戶會感謝你。

編輯:爲了澄清,我假設你正在尋找「彈出一個用戶輸入框」異步,沒有在你的前臺活動。如果是這樣,那不是一個好的用戶界面模式 - 當用戶輸入文本信息時,用戶可能會很容易被打擾。

所以,我試圖從 服務調用一個活動,但它並沒有幫助。出現 Force Close的可怕框並且 服務死亡。

確保您從UI線程調用startActivity()。如果沒有幫助,正如aforlorney所建議的那樣,通過adb logcat,DDMS或Eclipse中的DDMS透視圖檢查LogCat,以獲取異常的Java堆棧跟蹤。

+0

馬克在這裏點+1。我還記得在Android文檔中閱讀過這些內容。 100次中有99次,你想彈出一個通知,用戶可以在閒暇時參加。 – Konklone 2009-11-28 23:38:09

1

這與答案沒有直接關係(commonsware.com已經給出瞭如何解決這個問題的很好的概述),但只是一個提示:如果你有一個間歇性運行代碼的後臺服務,您應該使用AlarmManager將服務喚醒,而不是無限期地繼續。基本上,啓動服務,讓它創建一個PendingIntent來調用它自己,然後在必要時喚醒它自己。