android中的自定义广播

来源:互联网 发布:技术支持 伯才网络 编辑:程序博客网 时间:2024/05/17 09:23

首先呢  我们创建的其实是广播接收者    是接受广播的     而不是处理广播的。


我们在发送广播的时候   其实就是和开启一个activity一样    借助intent来实现    


记好我们在发送广播的时候 类似于我们的  隐式开启activity    通过action来实现。


我们创建广播的时候   注意需要注册的

广播特殊既可以在清单文件里面注册    也可以在代码里面注册。


我们代码里面注册广播接受者的时候     

是在主activity  最先加载的activty里面注册的。

IntentFilter filter = new IntentFilter();
filter.addAction("com.itheima40.help");
// java代码注册广播接受者, 特点: 优先级要比清单文件的要高, 当前的广播接受者的生命周期的期限和activity是相关联的.
registerReceiver(new LeiFengReceiver(), filter);


@Override
protected void onDestroy() {
super.onDestroy();
// 解注册
unregisterReceiver(leiFengReceiver);
}



<receiver android:name="com.itheima40.sendbroadcast.Level1Receiver" >
            <intent-filter android:priority="1000" >
                <action android:name="com.itheima40.songwennuan" />
            </intent-filter>
        </receiver>


注意  在清单文件里面注册的时候  我们还可以设置他的优先级别





创建广播接受者:


主要是  当我们接受到这个广播之后   我们要进行的操作。


一个广播接收者  还可以注册多个动作    随后 当我们


public class WDGReceiver extends BroadcastReceiver {


@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if("com.itheima40.help".equals(action)) {
System.out.println("乡长王大干: 有人喊救命, 假装没听见");
} else if("com.itheima40.songwennuan".equals(action)) {
String resultData = getResultData();
System.out.println("乡长王大干收到通知, 送温暖: " + resultData);

//setResultData("一桶油+两箱白像方便面");
abortBroadcast();
}
}
}


传递数据的时候     我们可以设置数据


String resultData = getResultData();
System.out.println("市办公厅收到通知, 送温暖: " + resultData);

setResultData("500块钱");

获得传递的数据   同时进行更改。

还可以终止广播的传送。



发送广播:

public void sendBroadcast(View v) {
Intent intent = new Intent("com.itheima40.help");
sendBroadcast(intent); // 发送一个广播, 广播的动作为: com.itheima40.help
}



/**
* 有序广播
* @param v
*/
public void sendOrderBroadcast(View v) {
Intent intent = new Intent("com.itheima40.songwennuan");
sendOrderedBroadcast(
intent, 
null, 
new LeiFengReceiver(), // 无论是否拦截这个有序广播, 最终此参数指定的广播接受者必须收到.
null, 
0, 
"10000块钱", 
null);
}

























































0 0
原创粉丝点击