Skip to content

Instantly share code, notes, and snippets.

@garymabin
Created September 17, 2014 03:08
Show Gist options
  • Save garymabin/f4a5072a679f37bb6ccd to your computer and use it in GitHub Desktop.
Save garymabin/f4a5072a679f37bb6ccd to your computer and use it in GitHub Desktop.
Code for switching data between work thread and main thread using Handler.post()
public interface INotifier {
void onNewData(Object payload);
}
public class WorkThread {
private INotifier mNotifier;
public void run() {
Object payload;
//do your network relate stuff
mNotifier.onNewData(payload);
}
}
public class WorkTracker implements INotifier {
private Handler mHandler = new Handler();
static class NotifyRunnable implements Runnable {
private Object mPayload;
public NotifyRunnable(Object data) {
mPayload = data;
}
public void run() {
//when post to hanlder based on main looper, now we run on main thread.
}
}
public void onNewData(Object payload) {
//called on WorkThread, use Handler to change to main thred.
mHandler.post(new NotifyRunnable(payload));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment