EventBus 상세 사용 강좌 [Activity, 서비스, Receiver에서 Post], 이벤트busreceiver

4396 단어 android
1. EventBus 추가
    compile
'de.greenrobot:eventbus:2.4.0'
대응하는jar 패키지를 다운로드하거나
2, 등록 및 로그오프 EventBus
  
      
@Override
  
protected
void
onStart
() { 
     
super
.onStart(); 
     
//등록
      EventBus
EventBus.getDefault().register(
this
); 
      Logger.e(
"EventBus 등록"
); 
   }
 
 
@Override
 
protected
void
onStop
() {
      
super
.onStop(); 
     
//EventBus 로그오프
EventBus.getDefault().unregister(
this
);
       Logger.e(
"EventBus 로그아웃"
);
   }
3. 메시지 유형 사용자 정의
    public class MessageEvent {
 
     public String message;
     public MessageEvent(String message){
          this.message = message;
    }
 }
4、post는Activity의 하위 스레드에서 메시지 업데이트 UI를 발송합니다
   
       Thread  thread = new Thread(new Runnable){
          
               @Override
                public run(){
                EventBus.getDefault.post("Event Bus가 하위 스레드에서 보낸 메시지일 뿐")
            
        }
 }
 
5. Service에서 Activity에 메시지를 보내 UI 업데이트
 
public class MyService extends Service {

    public static final String ACTION_START="ACTION_START";

    @Override
    public IBinder onBind(Intent intent) {
        return new Binder();
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        if(ACTION_START.equals(intent.getAction())){
            new MyServerThread().start();
        }

        return super.onStartCommand(intent, flags, startId);
    }

    class MyServerThread extends Thread{
        @Override
        public void run() {
            EventBus.getDefault().post(new MessageEvent("   MyService MyServerThread   Post   "));
        }
    }
}

6. Receiver Activity UI

public class MyBroadcastReceiver extends BroadcastReceiver{
    public static final String ACTION_SEND="ACTION_SEND";

    @Override
    public void onReceive(Context context, Intent intent) {

        if (ACTION_SEND.equals(intent.getAction())){
            EventBus.getDefault().post(new MessageEvent("   [  ]  Activity    "));
        }
    }
}



좋은 웹페이지 즐겨찾기