安卓四大组件复习自定义广播(三)
前面一直监听系统的广播,这时候我们应该想想 应该我们可以自己发送广播,自己监听的。
思路:一个应用发送 发送广播 一个应用接收应用
这时候,广播也有很多种,无序广播和 有序广播 在于发送方式
//sendBroadcast(intent); //发送一条无序的广播事件
先看发送应用代码
package com.example.Demo123;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void btn(View view){
Intent intent=new Intent();
intent.setAction("com.itheima.xxxooo");
//把这个自定义的广播发送出去
//sendBroadcast(intent); //发送一条无序的广播事件
//如果广播事件是无序发送出去的 所有的广播接受者 都会接受到这个事件
//如果广播是有序的发送出去的, 广播接收者会按照优先级 接受到广播事件
// 有序广播 特点: 高优先级的广播接受者 可以终止掉 广播事件
//sendOrderedBroadcast(intent, null);
sendOrderedBroadcast(intent, null, new FinalRecevier(), null, 0, null, null);
}
}记得注册广播 可以看到发送类 是设置了 广播的名称的 然后通过 Intent发送
接收应用呢
配置文件
<receiver android:name=".MyBroadcastReceiver" >
<intent-filter android:priority="1000">
<action android:name="com.itheima.xxxooo" >
</action>
</intent-filter>
一个广播类 收到以后直接 toast一下
package com.example.module3g;
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) {
System.out.println("reveriver 1 接收到了广播");
Toast.makeText(context, "检查到了 自定义的广播事件", 1).show();
}
}