BroadCastReciver广播

2017-03-02  本文已影响9人  金馆长说
  1. 无序广播发送: 只要注册了广播都可以接收到不能拦截,没有优先级,除非设置了优先级的值。

  2. 有序广播发送:广播可以被拦截,值可以被修改,可以被终止。priority值
    -1000到1000越大谁越来先接收到广播。

    注意:所谓广播肯定需要先 1.注册广播 2.在有一个接收。3.然后在发送

    //创建接收器
    public class MyBroadCast extends BroadcastReceiver {

        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(BarodCast.this, "广播", Toast.LENGTH_SHORT).show();
            getResultData()//获取数据
            setResultData();//修改数据
            abortBroadcast();//结束广播,后面的接收不到会。
        }
    }


   //动态注册,不是常驻广播。
    public void registerBroadCast() {
        IntentFilter filter = new IntentFilter();
        filter.addAction("com.guangbo");//设置过滤,不设置会收不到。
        registerReceiver(new MyBroadCast(), filter);
    }


    //静态注册常驻广播
       <receiver android:name=".broadcast.TestBroadcast">
            <intent-filter android:priority="1">
                <action android:name="com.guangbo"></action>
            </intent-filter>
        </receiver>

     //发送有序广播广播
    public void sendBroadCast() {
        Intent in = new Intent();
        in.setAction("com.guangbo");//设置过滤,不设置会收不到。
        sendBroadcast(in);
    }



上一篇下一篇

猜你喜欢

热点阅读