0
我必须在服务中执行重复任务(从互联网下载数据)。我做了下面的代码的任务:使用IntentService执行重复任务
public class MyService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
mHandler.post(mTask);
return START_STICKY;
}
private final Runnable mTask = new Runnable() {
@Override
public void run() {
downloadData(url);
mHandler.postDelayed(this, mDelay);
}
};
@Override
public void onDestroy() {
mHandler.removeCallbacks(mTask);
}
}
如果我想使用IntentService而不是服务和移动mHandler.post(mTask);
到onHandleIntent因为那时IntentService被杀害的代码被执行只有1次。
@Override
public void onHandleIntent(Intent intent) {
mHandler.post(mTask);
}
我可以防止这种情况并使IntentService运行吗?