android之广播详解下篇

来源:互联网 发布:知乎 约翰事件 编辑:程序博客网 时间:2024/06/04 23:21

一.发送自定义广播:

1.首先发送广播之前 先准备一个可以接收该自定义广播的广播接收器

public class MyBroadcastReceiver extends BroadcastReceiver {    @Override    public void onReceive(Context context, Intent intent) {        Toast.makeText(context, "received in MyBroadcastReceiver",                Toast.LENGTH_SHORT).show();    }}

在配置文件中进行静态注册

  <receiver android:name="com.example.administrator.pandora.MyBroadcastReceiver" >            <intent-filter>                <action android:name="com.example.broadcasttest.MY_BROADCAST" />            </intent-filter>        </receiver>

准备好接收器之后

开始自定义发送广播  这个广播的action 要和在配置文件注册的广播接收器action对应

  Button button = (Button) findViewById(R.id.button);

  button.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");                        sendBroadcast(intent);            }        });

上述讲述的 标准广播的发送 这种广播是异步的 系统级别的全局广播  另外一种广播是有序广播

既然是有序的 就有优先级的不同 可以使用其实也就是发送的方法不同 这里就不再解释了!

二.使用本地广播

前面我们发送和接收的广播全部都是属于系统全局广播,即发出的广播可以被其他任何
的任何应用程序接收到,并且我们也可以接收来自于其他任何应用程序的广播。这样就很容
易会引起安全性的问题,比如说我们发送的一些携带关键性数据的广播有可能被其他的应用
程序截获,或者其他的程序不停地向我们的广播接收器里发送各种垃圾广播。

本地广播的用法并不复杂,主要就是使用了一个LocalBroadcastManager 来对广播进行
管理,并提供了发送广播和注册广播接收器的方法。

本地广播是无法静态注册的 也是在在代码中动态注册 就跟接收系统系统广播那样具体详情 需要用的时候再查

0 0
原创粉丝点击