앱을 만들면 엄청난 시간이 걸릴 수있는 데이터를 처리해야합니다.IntentService 인터럽트
이제 IntentService에서 많은 내용을 읽었으며 실제로 REST 호출을 처리하기위한 통신 클래스로 구현했지만 실제로는 장기간 실행되는 데이터 처리에 사용하려고합니다.
제목 표시 줄에 진행 표시기를 추가했지만 사용자가 클릭 할 때 작업을 취소 할 수있는 것처럼 표시됩니다.
이 일을 섬세한 방법은? 현재 내가 정적 부울 "실행"을 가지고 있고 나는이 성가신을 찾을
@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;
}
에 onStartCommand를 오버라이드 (override)하고 (Thread.interrupt() 같은 것이) 있는가 우아하지 않고 IntentService를 의도하지 않은 것으로 오용하고 있다고 생각합니다. 이 일을 좀 더 우아한 방법이 있습니까?
stopSelf()가 수행중인 작업을 방해해야하므로 나를 위해 작동하지 않습니다. 나는 그것을 시도하고 코드는 실행에 갔다.
나는 AsyncTask를 생각하지만, 메신저 작업이 늘 생존 걱정. 나는IntentService
당신의 목적을 위해 정말 적합하지이라고 생각
AsyncTasks를 피하려면 [documentation] (https://developer.android.com/reference/android/)에서 "AsyncTasks를 사용하여 짧은 작업 (이상 최대 몇 초)"에 이상적입니다. os/AsyncTask.html) – Sam