BroadCastReceiver使用总结

来源:互联网 发布:吹笛子软件下载 编辑:程序博客网 时间:2024/05/22 12:23

广播有两种注册方式,废话不多说,上代码:

动态:

发送者

public class MainActivity extends AppCompatActivity {    MyReceiver1 myReceiver1 = new MyReceiver1();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        sendNormal();//正常广播        sendOrderMormal();//有序广播    }    public void sendNormal(){        Intent intent = new Intent("action");        this.sendBroadcast(intent);    }    public void sendOrderMormal(){        Intent intent = new Intent();        //null:权限. 优先级范围-1000~1000;        this.sendOrderedBroadcast(intent, null);//发送有序广播        //注意:有序广播公用一个action,通过设置优先级来确定发送的顺序,通过sendOrderedBroadcast来根据自己的意愿来截断广播. }    @Override    protected void onResume() {        super.onResume();        IntentFilter intentFilter = new IntentFilter();        intentFilter.addAction("action");//注册action        registerReceiver(myReceiver1, intentFilter);//注册    }    @Override    protected void onPause() {        super.onPause();        unregisterReceiver(myReceiver1);//解注册    }}
接受者代码:
public class MyReceiver1 extends BroadcastReceiver {    public MyReceiver1() {    }    @Override    public void onReceive(Context context, Intent intent) {        Toast.makeText(context, "111", Toast.LENGTH_LONG).show();        Bundle data = new Bundle();        data.putString("info", "11-1");        this.setResultExtras(data);        this.abortBroadcast();//可以截断广播    }}

静态注册:

       <receiver            android:name=".MyReceiver1"            android:enabled="true"            android:exported="true">            <intent-filter android:priority="100">                <action android:name="action" />            </intent-filter>       </receiver>




其实从上面就可以看出来,广播可以用来组件间的通信,写法也很简单,跟上面差不多.

原创粉丝点击