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);