2012-11-21 79 views
0

我正在開發一個應用程序,通過wifi連接從外部設備收集數據。我使用一個線程來完成這項工作,並將數據存儲到數據庫中。應用程序或前臺服務的子類中的後臺線程?

將線程放入自定義應用程序類(作爲單例管理)是否是一個好主意?或者,如果我把它放在前臺服務裏面會更好嗎?

+0

你是什麼意思的前臺服務。 – jeet

+0

使用服務。應用程序中的靜態線程非常相似,但是服務旨在用於此類任務。 – zapl

+0

前臺服務:調用startForeground(0,notification);從服務 –

回答

1

使用IntentService。 IntentService使用單獨的後臺線程,所以它不會阻塞UI線程。即使您的所有活動都在後臺,它仍然存在。 AsyncTask的問題在於,如果Activity終止,它就會終止。使用IntentService,您的下載將愉快地運行,直到完成。

如果你真的知道 Android線程和你感覺舒服,那麼你可以做自己的線程。不過,我注意到使用IntentService要容易得多。唯一的缺點是IntentService線程不能被中斷,但我懷疑大多數開發人員需要該功能。

要從IntentService與應用程序中的其他組件通信,請使用LocalBroadcastReceiver。要向用戶界面「溝通」,請使用通知。

+0

有趣的...我投你的迴應,但我不知道它的解決方案呢。不管怎麼說,還是要謝謝你。 –

相關問題