1.创建一个应用程序,点击按钮实现发送广播。收到广播后在logcat中显示“智能终端开发课程在学银在线开课啦”。
运行效果如图所示:
activity_gb.xml:
GBActivity.java
packagecom.example.myapplication;importandroidx.appcompat.app.AppCompatActivity;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.os.Bundle;importandroid.view.View;public class GBActivity extendsAppCompatActivity {protectedMyReceiver receiver;protectedIntentFilter intentFilter;protected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gb);
receiver= newMyReceiver();
intentFilter= newIntentFilter();
intentFilter.addAction("zy_send");
registerReceiver(receiver,intentFilter);
}public voidsend(View view){
Intent intent= newIntent();//定义广播事件类型
intent.setAction("zy_send");//发送广播
sendBroadcast(intent);
}protected voidonDestroy(){super.onDestroy();
unregisterReceiver(receiver);
}
}
MyReceiver.java
packagecom.example.myapplication;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.util.Log;public class MyReceiver extendsBroadcastReceiver {
@Overridepublic voidonReceive(Context context, Intent intent) {
Log.i("MyReceiver","智能终端开发课程在学银在线开课啦");
}
}
2.创建三个广播接收者1、2、3,并在注册时设置广播接收者的优先级,实现有序广播,要求按照3、2、1的顺序接受广播消息,在logcat中按接受顺序显示广播接收者的名称。
activity_gb.xml:
GBActivity.java
packagecom.example.myapplication;importandroidx.appcompat.app.AppCompatActivity;importandroid.content.Intent;importandroid.content.IntentFilter;importandroid.os.Bundle;importandroid.view.View;public class GBActivity extendsAppCompatActivity {protectedMyReceiver receiver;protectedMyReceiver2 receiver2;protectedMyReceiver3 receiver3;protectedIntentFilter intentFilter;protectedIntentFilter intentFilter2;protectedIntentFilter intentFilter3;protected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gb);
receiver= newMyReceiver();
intentFilter= newIntentFilter();
intentFilter.addAction("zy_send");
intentFilter.setPriority(200);
receiver2= newMyReceiver2();
intentFilter2= newIntentFilter();
intentFilter2.addAction("zy_send");
intentFilter2.setPriority(300);
receiver3= newMyReceiver3();
intentFilter3= newIntentFilter();
intentFilter3.addAction("zy_send");
intentFilter3.setPriority(400);
registerReceiver(receiver3,intentFilter3);
registerReceiver(receiver2,intentFilter2);
registerReceiver(receiver,intentFilter);
}public voidsend(View view){
Intent intent= newIntent();//定义广播事件类型
intent.setAction("zy_send");//发送广播
sendOrderedBroadcast(intent,null);
}protected voidonDestroy(){super.onDestroy();
unregisterReceiver(receiver);
}
}
MyReceiver.java
packagecom.example.myapplication;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.util.Log;public class MyReceiver extendsBroadcastReceiver {
@Overridepublic voidonReceive(Context context, Intent intent) {
Log.i("MyReceiver","智能终端开发课程在学银在线开课啦1");
}
}
MyReceiver2.java
packagecom.example.myapplication;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.util.Log;public class MyReceiver2 extendsBroadcastReceiver {
@Overridepublic voidonReceive(Context context, Intent intent) {
Log.i("MyReceiver2","智能终端开发课程在学银在线开课啦2");
}
}
MyReceiver3.java
packagecom.example.myapplication;importandroid.content.BroadcastReceiver;importandroid.content.Context;importandroid.content.Intent;importandroid.util.Log;public class MyReceiver3 extendsBroadcastReceiver {
@Overridepublic voidonReceive(Context context, Intent intent) {
Log.i("MyReceiver3","智能终端开发课程在学银在线开课啦3");
}
}