android四大组件之广播接收者

android四大组件之广播接收者

参考地址:https://blog.csdn.net/tang_vincent/article/details/73928066

创建发送广播的实现类
android四大组件之广播接收者_第1张图片

在界面中添加一个按钮,然后编写实现广播的方法
android四大组件之广播接收者_第2张图片
android四大组件之广播接收者_第3张图片

android四大组件之广播接收者_第4张图片
android四大组件之广播接收者_第5张图片

在androidmainifset中配置广播
android四大组件之广播接收者_第6张图片

执行流程
页面加载时触发绑定方法,调用myReceiver中的onReceliver方法执行接收广播
android四大组件之广播接收者_第7张图片
android四大组件之广播接收者_第8张图片

点击发送广播 按钮触发的方法,发送广播
android四大组件之广播接收者_第9张图片
android四大组件之广播接收者_第10张图片

myReceiver类中的方法执行时会打印接收到的信息
android四大组件之广播接收者_第11张图片

//普通广播会给所有人发消息,效率高
//标准广播有序广播会给优先级最高的发送
//如果优先级最高的使用 abortBroadcast()方法则下面的接收不到消息

public class receive1 extends BroadcastReceiver {
     
    @Override
    public void onReceive(Context context, Intent intent) {
     
        String str = intent.getStringExtra("title");
        Log.d("日志","receive1 接收到: "+str);
    }
}

public class receive2 extends BroadcastReceiver {
     
    @Override
    public void onReceive(Context context, Intent intent) {
     
        String str = intent.getStringExtra("title");
        Log.d("日志","receive2 接收到: "+str);
    }
}

//接收广播 需要继承BroadcastReceiver类
// 实现onReceive方法

public class myReceiver extends BroadcastReceiver {
     
    @Override
    public void onReceive(Context context, Intent intent) {
     
        //获取广播中标题
        String reStr = intent.getStringExtra("title");
        Log.d("日志","myReceiver 接收消息: "+reStr);
        //在配置文件的优先级高先收到广播消息,在这里终止广播,其他优先级低的接受者接收不到消息。
        abortBroadcast();
    }
}

//绑定时调用实现动态注册

@Override
protected void onResume() {
     
    super.onResume();
    IntentFilter filter = new IntentFilter("android.intent.action.MAIN");
    filter.setPriority(900);//设置优先级
    receiver = new myReceiver();
    registerReceiver(receiver,filter);

    IntentFilter filter1 = new IntentFilter("android.intent.action.MAIN");
    filter.setPriority(800);//设置优先级
    r1=new receive1();
    registerReceiver(r1,filter1);
    r2=new receive2();
    registerReceiver(r2,filter1);
}

//销毁时调用unregisterReceiver防止内存泄漏**

@Override
protected void onDestroy() {
     
    super.onDestroy();
    unregisterReceiver(receiver);
    unregisterReceiver(r1);
    unregisterReceiver(r2);
}

千万不要忘记在androidmainifset中配置

<receiver android:name=".myReceiver">
    <intent-filter android:priority="900">
        <action android:name="android.intent.action.MAIN"/>
    </intent-filter>
</receiver>
<receiver android:name=".receive1">
    <intent-filter android:priority="900">
        <action android:name="android.intent.action.MAIN"/>
    </intent-filter>
</receiver>
<receiver android:name=".receive2">
    <intent-filter android:priority="900">
        <action android:name="android.intent.action.MAIN"/>
    </intent-filter>
</receiver>

你可能感兴趣的:(安卓逆向)