1. 程式人生 > >Android 通訊之EventBus實現廣播與Activity通訊

Android 通訊之EventBus實現廣播與Activity通訊

本章節講述 如何利用EventBus 實現Android廣播與Activity通訊  根據廣播接收到的內容更新Activity資料

本章節中的廣播是極光推送操作別名和標籤的廣播

程式碼1:

@Override
    public void onTagOperatorResult(Context context, JPushMessage jPushMessage) {
        super.onTagOperatorResult(context, jPushMessage);
        int code=jPushMessage.getErrorCode();
        if(code==0){//成功


            Set<String> set=jPushMessage.getTags();//獲取標籤
            Notice notice=new Notice();
            notice.setTags(set);
            EventBus.getDefault().post(notice);//傳送EventBus


            Toast.makeText(context,"成功!"+code,Toast.LENGTH_LONG).show();
        }else if(code==6021){//tags操作正在進行中,暫時不能進行其他tags操作


        }else{
            Toast.makeText(context,"標籤相關操作失敗!"+code,Toast.LENGTH_LONG).show();
        }
    }

程式碼2:

@Override
    public void onAliasOperatorResult(Context context, JPushMessage jPushMessage) {
        super.onAliasOperatorResult(context, jPushMessage);
        int code=jPushMessage.getErrorCode();
        if(code==0){//正確


            String alias=jPushMessage.getAlias();//獲取別名
            Notice notice=new Notice();
            notice.setAlias(alias);
            EventBus.getDefault().post(notice);//傳送廣播


            Toast.makeText(context,"成功!"+code,Toast.LENGTH_LONG).show();
        }else if(code==6022){//alias操作正在進行中,暫時不能進行其他alias操作


        }else{
            Toast.makeText(context,"別名相關的操作失敗!"+code,Toast.LENGTH_LONG).show();
        }
    }

activity中註冊接收

1. //註冊EventBus

EventBus.getDefault().register(SettingAliasActivity.this);

2.onEventMainThread 接收EventBus訊息


public void onEventMainThread(Notice notice) {
  String alias=notice.getAlias();
  if("".equals(alias)||"null".equals(alias)||null==alias){
       resulttextview.setText("還未設定過別名");
    }else{
       resulttextview.setText("已設定別名:"+alias);
    }

}

3.//登出EventBus
EventBus.getDefault().unregister(SettingAliasActivity.this);