EventBus 詳細使用教程[在Activity、Service、Receiver中Post],eventbusreceiver

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(new Message("只是EventBus在子線程中發送過來的消息"));
            
        }

 }

 

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發送消息"));
        }
    }
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章