2012-09-26 54 views
0

第一個問題: 我知道在Activities only視圖中應該實現內容,但是通常爲每個更長的計算過程啓動自己的服務?Android - 後臺計算

第二個問題: 與服務的通信在代碼中非常廣泛。如果你想在服務上調用一個方法,你必須實現IPC的機制?或者是否也可以在不使用AIDL文件的情況下調用本地服務上的方法?

回答

1

根據您想要執行的任務考慮使用AsyncTaskIntentService。在這裏最好使用常規Service,而不是最適合您的需求。

如果您使用常規的Service,您可以輕鬆地傳遞您的數據或參數或任何其他內容Intent。你不需要任何IPC。

+0

我也可以傳遞Intents中的對象嗎? –

+0

爲什麼使用asyncTask或服務比創建一個在後臺執行計算的普通java線程更好? –

+0

@ TobiWeiShaar AsyncTask是助手類,但是在Android上進行線程化時,您可能會發現它比'直接'Java線程更適合使用。我相信你也可以用Java線程來做你想做的事情,但是AsyncTask應該簡化它。如果您不確定,請嘗試AsyncTask:http://developer.android.com/reference/android/os/AsyncTask.html –

1

第一個問題:您可以啓動一個AsynTask以獲得更長的計算過程,服務通常用於在後臺應用程序時執行操作。第二個問題:你可以調用任何Method在你的服務上,使用空閒使你的服務可用於多個應用程序,女巫不是簡單服務的情況,另外,樣本服務運行在與你的服務相同的應用程序進程上活動,女巫不是閒置服務的情況。