박상권의 삽질블로그

Event bus [Bus "default"] accessed from non-main thread Looper 본문

IT/Android-ERROR&SOLVE

Event bus [Bus "default"] accessed from non-main thread Looper

박상권 2015.11.16 19:15

Otto를 사용하는경우 GCM을 위한 intentservice같은 곳곳에서 post를 보내는경우 오류가 발생할 수 있다.



Otto의 Bus클래스를 상속받아서 아래와같은 클래스를 만들고 이 클래스를 사용한다



public class CustomBus extends Bus {
private final Handler mHandler = new Handler(Looper.getMainLooper());

@Override
public void post(final Object event) {
if (Looper.myLooper() == Looper.getMainLooper()) {
super.post(event);
} else {
mHandler.post(new Runnable() {
@Override
public void run() {
CustomBus.super.post(event);
}
});
}
}

}


1 Comments
댓글쓰기 폼