2016-02-26 77 views
1

我一個上午構建一個Android應用程序,並在某些時候我需要建立一個新的特定的「主題」,讓我們稱之爲A.我應該使用什麼?服務? AsyncTask?還有別的嗎?

  • A將與遠程服務器進行通信(下載圖片,並送些小數據)
  • A將與我的應用程序的若干活動通信(發送INT /串)
  • 一要生存,即使在應用程序關閉
  • A將活着的特定時間(大約10分鐘)

應該是什麼?服務?一個AsyncTasck? 我認爲它不能只是一個線程,因爲一個線程鏈接到一個特定的活動,但我可能是錯的。

獎金問題:A和我的活動之間溝通的最佳方式是什麼?

謝謝你的幫助。

+1

尋找背景綁定服務 – Gusman

回答

1

在的AsyncTask文檔,你可以看到:(。在幾秒鐘最)

「AsyncTasks應該理想地用於短的操作。如果你需要保持線程運行很長一段時間,我們強烈建議您使用由java.util.concurrent包提供的各種API,如Executor,ThreadPoolExecutor和FutureTask。「

所以沒有針對這種情況

1

服務是包裝線程並在UI關閉後保持活動狀態的最佳方式。然後,您的服務將通過兩種方式與活動進行通信:通過broadcasting intents或實施callbacks。我個人更喜歡一般情況下的回調。

根據我的經驗,一個主要問題是使服務保持活躍狀態​​並阻止Android將其殺死以節省內存。只是因爲我知道這個問題可能會出現,我會說你要麼向服務添加一個START_STICKY標誌,要麼創建一個foreground service而不是後臺來保持服務運行。

+0

看看[我的其他答案](http://stackoverflow.com/questions/35434147/how-to-get-progressbar-to-show-while-onclicklistener-is-running/35435446 #35435446)關於如何實現回調。 – SoroushA

相關問題