Android显示广播写法,【Android】广播的写法
發送廣播html
/**
*?小喇叭發出數據已經跟新的廣播
*/
private?void?broadcastCircleViewUpdate()?{
//建立?Intent
Intent?testIntent?=?new?Intent();
//設置?動做屬性
testIntent.setAction(Action.ACTION_CIRCLE_MSG_UPDATE);
//設置消息內容
testIntent.putExtra("MSG",?"Test!!!!");
//發送廣播
getBaseContext().sendBroadcast(testIntent);
}
接受廣播java
【1】先寫一個廣播監聽對象: receiver
android
private?BroadcastReceiver?receiver?=?new?BroadcastReceiver()?{
@Override
public?void?onReceive(Context?context,?Intent?intent)?{
//講廣播中收到的intent的屬性取出來
String?action?=?intent.getAction();
//使用if-else?if?進行哦匹配;注意不要使用switch
if?(action.equals(BroadCastAction.NEW_POST_ACTION))?{
//添加須要執行的動做
...
...
}?else?if?(action.equals(BroadCastAction.NEW_POST_SUCCESS_ACTION))?{
//添加須要執行的動做
...
...
}?else?if?(action.equals(BroadCastAction.NEW_POST_FAIL_ACTION))?{
//添加須要執行的動做
...
...
}?else?if?(action.equals(Action.ACTION_CIRCLE_MSG_UPDATE))?{
//添加須要執行的動做
String?msg?=?intent.getStringExtra("MSG");
...
...
}?else?if?(action.equals(Action.ACTION_CIRCLE_HOME_UPDATE))?{
//添加須要執行的動做
...
...
}?else?if?(action.equals(Action.ACTION_CIRCLE_PERSONAL_UPDATE))
{
//添加須要執行的動做
...
...
}
}
};
【2】集中注冊全部的監聽
ide
/**
*?集中注冊監聽
*/
private?void?registRecivers()?{
IntentFilter?filter?=?new?IntentFilter();
filter.addAction(BroadCastAction.NEW_POST_ACTION);
filter.addAction(BroadCastAction.NEW_POST_SUCCESS_ACTION);
filter.addAction(BroadCastAction.NEW_POST_FAIL_ACTION);
filter.addAction(Action.ACTION_CIRCLE_MSG_UPDATE);
filter.addAction(Action.ACTION_CIRCLE_HOME_UPDATE);
filter.addAction(Action.ACTION_CIRCLE_PERSONAL_UPDATE);
//注冊走起:參數1為receiver,參數2為intent過濾器
registerReceiver(receiver,?filter);
}
【3】廣播的注冊與卸載code
protected?void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_firend_circle);
...?...
//?在Activity中onCreate()中集中注冊
registRecivers();
}
@Override
protected?void?onDestroy()?{
super.onDestroy();
//?注意必定要卸載,否則運行會報錯
unregisterReceiver(receiver);
}
好東西老是在最后!!!xml
BroadcastReciver須要能匹配的intent,共有2種方式htm
【1】使用代碼進行制定,以下對象
private?void?registRecivers()?{
IntentFilter?filter?=?new?IntentFilter();
filter.addAction(BroadCastAction.NEW_POST_ACTION);
filter.addAction(BroadCastAction.NEW_POST_SUCCESS_ACTION);
filter.addAction(BroadCastAction.NEW_POST_FAIL_ACTION);
filter.addAction(Action.ACTION_CIRCLE_MSG_UPDATE);
filter.addAction(Action.ACTION_CIRCLE_HOME_UPDATE);
filter.addAction(Action.ACTION_CIRCLE_PERSONAL_UPDATE);
//注冊走起:參數1為receiver,參數2為intent過濾器
registerReceiver(receiver,?filter);
}
【2】在AndroidManifest.xml文件中進行配置ip
這里有個坑!!!用sipBroadcastReceiver.java來舉個例子ci
使用方式【2】的話是有條件的:sipBroadcastReceiver.java 必須存在這個類
必定必定!!!!不能在Activity中寫成內部類sipBroadcastReceiver,這樣會報錯!!!
網上看到已經有哥么掉坑里去過了:
總結
以上是生活随笔為你收集整理的Android显示广播写法,【Android】广播的写法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 高级项目,从零开始的An
- 下一篇: android dp工具类,Androi