Android 广播接收者练习-发送有序广播
2017-06-08 10:10
537 查看
任务内容:
一,发送有序广播对应的布局页面:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_exe"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/stitch_one"
tools:context="com.example.administrator.hello.Exe">
<Button
android:text="发送有序广播"
android:textSize="35dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:id="@+id/button" />
</RelativeLayout>
二、发送广播,当点击button按钮时,触发点击事件,会发送一条广播。
public class Exe extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exe);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new send());
}
private class send implements View.OnClickListener {
@Override
public void onClick(View v) {
Intent intent = new Intent("Intercept_Stitch");
sendOrderedBroadcast(intent,null);
}
}
}
三,接受广播,即添加广播接受者。
1.第一个接受者。
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","自定义的广播接受者01,接受到了自定义的广播事件");
}
}
2.第二个接受者。
public class MyBroadReceiverTwo extends BroadcastReceiver {
public MyBroadReceiverTwo() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
Log.d("MyBroadReceiverTwo","自定义的广播接受者02,接受到了自定义的广播事件");
}
}
3.第三个接受者
public class MyBroadReceiverThree extends BroadcastReceiver {
public MyBroadReceiverThree() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
Log.d("MyBroadReceiverThree","自定义的广播接受者03,接受到了自定义的广播事件");
}
}
四,三个广播接受者创建后,需要在清单文件中注册并设置他们的优先级。(android:priority属性指定了广播事件的优先级,优先级由高到底依次为:接受者01,接受者03,接受者02,并且要为这三个接受者定义监听的广播事件action为"Intercept_Stitch")
<receiver
android:name=".MyBroadReceiverOne"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="800">
<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>
所以当点击发送按钮时,按照优先级,他们的接受并弹出提示的顺序为01,03,02。
一,发送有序广播对应的布局页面:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_exe"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/stitch_one"
tools:context="com.example.administrator.hello.Exe">
<Button
android:text="发送有序广播"
android:textSize="35dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="100dp"
android:id="@+id/button" />
</RelativeLayout>
二、发送广播,当点击button按钮时,触发点击事件,会发送一条广播。
public class Exe extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exe);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new send());
}
private class send implements View.OnClickListener {
@Override
public void onClick(View v) {
Intent intent = new Intent("Intercept_Stitch");
sendOrderedBroadcast(intent,null);
}
}
}
三,接受广播,即添加广播接受者。
1.第一个接受者。
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","自定义的广播接受者01,接受到了自定义的广播事件");
}
}
2.第二个接受者。
public class MyBroadReceiverTwo extends BroadcastReceiver {
public MyBroadReceiverTwo() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
Log.d("MyBroadReceiverTwo","自定义的广播接受者02,接受到了自定义的广播事件");
}
}
3.第三个接受者
public class MyBroadReceiverThree extends BroadcastReceiver {
public MyBroadReceiverThree() {
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO: This method is called when the BroadcastReceiver is receiving
// an Intent broadcast.
Log.d("MyBroadReceiverThree","自定义的广播接受者03,接受到了自定义的广播事件");
}
}
四,三个广播接受者创建后,需要在清单文件中注册并设置他们的优先级。(android:priority属性指定了广播事件的优先级,优先级由高到底依次为:接受者01,接受者03,接受者02,并且要为这三个接受者定义监听的广播事件action为"Intercept_Stitch")
<receiver
android:name=".MyBroadReceiverOne"
android:enabled="true"
android:exported="true">
<intent-filter android:priority="800">
<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>
所以当点击发送按钮时,按照优先级,他们的接受并弹出提示的顺序为01,03,02。
相关文章推荐
- Android-广播接收者:发送有序广播
- Android--广播接收者(发送有序广播)
- Android自定义发送有序广播
- android-BroadcastReceiver 发送有序广播
- 安卓BroadcastReceiver组件使用系列2:给多个广播接收者发送广播和有序广播的使用
- 广播接收者之发送有序广播
- android-BroadcastReceiver 发送有序广播
- android,自定义广播,最终广播接收者,防止拦截广播,有序广播,无序广播
- Android 四大组件之BroadcastReceiver(发送有序无序广播)
- android-BroadcastReceiver 发送有序广播
- Android短信的发送和广播接收者实现短信的监听
- 广播接收者-发送有序广播
- Android BroadcastReceiver实例Demo(有序广播的发送)
- Android短信的发送和广播接收者实现短信的监听
- android-BroadcastReceiver 发送有序广播
- android 发送有序广播sendOrderBraodCast、截断广播和广播之间的数据传递
- Android短信的发送和广播接收者实现短信的监听
- android 发送有序广播sendOrderBraodCast、截断广播和广播之间的数据传递
- Android入门:广播发送者与广播接收者(同步广播和有序广播)
- Android 发送有序广播