Android中创建一个BroadcastReceiver

时间:2022-03-08 17:48:26

首先创建一个java类继承BroadcastReceiver类

 

package com.example.service;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class MyBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO: This method is called when the BroadcastReceiver is receiving
        // an Intent broadcast.
        String msg=intent.getStringExtra("msg");//获得广播信息
        Toast.makeText(context,msg,Toast.LENGTH_SHORT).show();


    }
}

 Mainactivity中添加如下语句进行数据的广播  Intent it=new Intent();

            it.setAction("android.intent.action.EDIT");//自定义地址
            //it.setComponent(new ComponentName("com.example.service", //此段内容用于Android8.0无法接收广播的情况参数1是自定义广播的包名,
// "com.example.service.MyBroadcastReceiver"));//
参数2是自定义广播的路径
it.putExtra("msg","广播已接收"); MainActivity.this.sendBroadcast(it); 

  在AndroidMainfest.xml中注册,在<application></application>中添加

 <receiver
            android:name=".MyBroadcastReceiver"
            android:enabled="true"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.EDIT"/>
            </intent-filter>
        </receiver>