发送有序广播

xiaoxiao2021-02-28  67

首先,先展示一下运行效果:

点击按钮“发送有序广播” 或按照之前代码中设置的优先级,先后打印日志。

首先,我们要创建三个MyBroadReceiver,在里面写一些,自己想要输出的语句。

public class MyBroadReceiverOne extends BroadcastReceiver { public MyBroadReceiverOne() { } @Override public void onReceive(Context context, Intent intent) { // TODO: This method is called when the BroadcastReceiver is receiving // an Intent broadcast. Log.d("MyBroadReceiverOne","自定义ONE"); } }

接下来的两个,与第一个类似。 创建广播接收器后,我们还要配置一下他们:

<receiver android:name=".MyBroadReceiverOne" android:enabled="true" android:exported="true"> <intent-filter android:priority="1000"> <action android:name="Intercept_Stitch"/> </intent-filter> </receiver> <receiver android:name=".MyBroadReceiverTwo" android:enabled="true" android:exported="true"> <intent-filter android:priority="200"> <action android:name="Intercept_Stitch"/> </intent-filter> </receiver> <receiver android:name=".MyBroadReceiverThree" android:enabled="true" android:exported="true"> <intent-filter android:priority="600"> <action android:name="Intercept_Stitch"/> </intent-filter> </receiver>

接下来是MainActivity中的代码。

public class Exe extends AppCompatActivity { private Button bt_send; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_exe); bt_send = (Button) findViewById(R.id.button); bt_send.setOnClickListener(new send()); } private class send implements View.OnClickListener { @Override public void onClick(View v) { Intent intent = new Intent("Intercept_Stitch"); sendOrderedBroadcast(intent,null); } } }

发送广播的顺序,和配置文件的priority属性有过,当priority的值越大时,优先级就越高,也就优先输出。当然如果两个接收器优先级一样大的话,那么就按照它们在XML文件中的先后顺序来确定它们的输出顺序。

转载请注明原文地址: https://www.6miu.com/read-72991.html

最新回复(0)