我有一個預定的服務(用於調度我使用一捆BroadcastReceiver和AlarmManager)。服務使用AsyncTask進行一些長時間運行的操作。Android AsyncTask同步
- 連接到服務器
- 檢查一些更新,如果他們存在
- 進行數據更新操作
- 加載更新
我打電話從OnStart方法任務是這樣的:
onStart(...){
...
new AsyncUpdate(...).execute(...);
}
用戶可以執行更新操作(他按下運行服務的按鈕)。 那麼,如果他在執行AsyncUpdate任務期間按下按鈕呢?根據引用新的工作線程將被創建,所以我需要同步它們。 我使用靜態PARAM從我的服務類吧:
synchronized(MyService.runLock){//public static Object runLock = new Object();
...perform download and update operations
}
是正確的嗎?
我用過:遠程服務之前,所以服務在一個單獨的線程執行,我不需要這些之間的同步,因爲我知道我只有一個線程。
這就是訣竅......謝謝! – Nick 2011-05-27 07:04:12