
com.koushikdutta.async.future.HandlerFuture Maven / Gradle / Ivy
package com.koushikdutta.async.future;
import android.os.Handler;
import android.os.Looper;
/**
* Created by koush on 12/25/13.
*/
public class HandlerFuture extends SimpleFuture {
Handler handler;
public HandlerFuture() {
Looper looper = Looper.myLooper();
if (looper == null)
looper = Looper.getMainLooper();
handler = new Handler(looper);
}
@Override
public SimpleFuture setCallback(final FutureCallback callback) {
FutureCallback wrapped = new FutureCallback() {
@Override
public void onCompleted(final Exception e, final T result) {
if (Looper.myLooper() == handler.getLooper()) {
callback.onCompleted(e, result);
return;
}
handler.post(new Runnable() {
@Override
public void run() {
onCompleted(e, result);
}
});
}
};
return super.setCallback(wrapped);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy