首先在需要发送信息的地方,把要发送的信息和用于过滤的信息(如Action、Category)装入一个Intent对象,然后通过调用 sendOrderBroadcast()或sendStickyBroadcast()方法,把 Intent对象以广播方式发送出去。
当Intent发送以后,所有已经注册的BroadcastReceiver会检查注册时的IntentFilter是否与发送的Intent相匹配,若匹配则就会调用BroadcastReceiver的onReceive()方法。所以当我们定义一个BroadcastReceiver的时候,都需要实现onReceive()方法。
广播—是一个生命周期很短的过程,在这个过程里面不能有太耗时的操作(当然不能开子线程,有点时候线程还没有结束,广播的生命周期就结束了),那么记录一下自己的demo。
广播的注册方式有两种:
(1)可以在配置文件Manifest.xml中注册
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=“http://schemas.android.com/apk/res/android”
package=“com.zhjy.hxf.hznetworkchangedreceiver”>
<application
android:allowBackup=“true”
android:icon=“@mipmap/ic_launcher”
android:label=“@string/app_name”
android:supportsRtl=“true”
android:theme=“@style/AppTheme”>
<activity
android:name=“.MainActivity”
android:label=“@string/app_name”
android:theme=“@style/AppTheme.NoActionBar”>
//继承BroadcastReceiver,重写onReceiver方法
//使用过滤器,接收指定action广播
(2)当然还有一种就是在代码中实现动态注册
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {