当前位置: 软件>java软件
队列相关的Java类 Tape
本文导语: Tape 是一组跟队列相关的工具类,同时也适用于 Android 平台。 示例代码: /** Listener for starting the upload service when the queue has tasks. */ public class ImageQueueServiceListener implements ObjectQueue.Listener { private final Context context; public Image...
Tape 是一组跟队列相关的工具类,同时也适用于 Android 平台。
示例代码:
/** Listener for starting the upload service when the queue has tasks. */
public class ImageQueueServiceListener implements ObjectQueue.Listener {
private final Context context;
public ImageQueueServiceStarter(Context context) {
this.context = context;
}
@Override public void onAdd(ObjectQueue, ImageUploadTask task) {
context.startService(new Intent(context, ImageQueueService.class));
}
@Override public void onRemove(ObjectQueue) {}
}
/** Service which iterates through pending upload tasks one-by-one. */
public class ImageQueueService extends Service implements ImageUploadTask.Callback {
private TaskQueue queue;
private boolean running;
@Override public void onCreate() {
super.onCreate();
// Obtain TaskQueue here (e.g., through injection)
}
@Override public int onStartCommand(Intent intent, int flags, int startId) {
executeNext();
return START_STICKY;
}
public void executeNext() {
if (running) return; // Only one task at a time.
ImageUploadTask task = queue.peek();
if (task != null) {
task.execute(this);
running = true;
return;
}
stopSelf(); // We're done for now.
}
@Override public void imageUploadComplete() {
running = false;
queue.remove();
executeNext();
}
}