2012-09-04 48 views
0

嗨在Android我需要發送請求到服務器每隔30秒,而應用程序運行時不會干擾用戶。在服務或線程中執行此操作,還是在使用新線程的服務中執行此操作是明智的?Android服務或線程

乾杯

回答

0

最好使用Service。用AlarmManager調用service.In服務編寫代碼發送請求到服務器

0

服務: A服務是既代表一個應用程序的慾望的應用組件在不與用戶交互的情況下執行長時間運行的操作

雖然thread是併發執行單元,但您可以同時使用這兩個單元作爲您的用途,而另一個選項是Runnable wi th Handler您可以每30秒鐘撥打一次手機號碼或代碼

0

我建議你使用服務而不是創建一個線程。 Android開發者網站聲明如下:

需要注意的是服務,像其他應用程序對象,在主線程 其宿主進程的運行。這意味着,如果你的服務是 要做任何CPU密集型(如MP3播放)或阻塞(如網絡)操作,它應該產生自己的線程,在其中 這樣做的工作。關於這方面的更多信息可以在Processes和 主題中找到。 IntentService類可以作爲標準的 實現,該實現具有自己的線程,並在其中計劃要完成的工作 。

由於服務在UI線程中運行,您應該在服務中創建一個新的線程,每30秒向服務器發出請求。

我希望這會有所幫助。

0

我會建議你寫一個IntentService不是一個簡單的服務和裏面寫發送一個請求到服務器退避時間30秒的靜態方法,並在您的活動剛剛啓動該服務。

0

簡單地回答 - 「你應該使用服務還是線程?」

服務只是一個組件,即使用戶沒有與應用程序交互時,它也可以在後臺運行。因此,只有在您需要的情況下才能創建服務。

如果您需要在主線程之外執行工作,但只在用戶與應用程序進行交互時執行,則應該創建一個新線程而不是服務。

請記住,如果您確實使用服務,它仍默認在應用程序的主線程中運行,所以如果它執行密集或阻塞操作,您仍然應該在服務中創建新線程。