我正在創建一個應用程序,在那裏我需要處理可能很大並且可能需要一些時間的數據。中斷IntentService
現在我讀了很多關於IntentService的內容,實際上我已經實現了它作爲處理REST調用的通信類,但現在我試圖將它用於長時間運行的數據處理。
我在標題欄中添加了一個進度指示器,但現在id可以在用戶點擊它時取消操作。
是否有這樣做的一些優雅的方式?(有點像了Thread.interrupt())目前,我有一個靜態布爾「運行」,我已經重寫了onStartCommand到
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent.getAction() != null && intent.getAction().equals("stop")) {
running = false;
}
onStart(intent, startId);
return START_NOT_STICKY;
}
我覺得這比較麻煩和不夠優雅,並認爲我可能濫用IntentService來實現其無意的功能。有沒有更好的方法來做到這一點?
stopSelf()不適用於我,因爲我需要中斷正在進行的操作。我試了一下,代碼剛剛執行。
我想到的AsyncTask的,但即時通訊擔心任務不會生存下來。(操作可以採取儘可能15分鐘)
爲避免AsyncTasks這樣做是正確的:從[documentation](https://developer.android.com/reference/android/)中,「AsyncTasks理想地應該用於短操作(最多幾秒鐘) os/AsyncTask.html) – Sam 2013-03-14 15:32:31