1.静态广播
2.动态广播
3.有序广播
1静态广播
//静态广播
bu1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction("zhang");
sendBroadcast(intent);
}
});
package com.bw.gguangbo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "张三", Toast.LENGTH_SHORT).show();
}
}
在清单文件里
<receiver
android:name=".MyReceiver"
android:enabled="true"
android:exported="true">
<!-- priority设置优先级-->
<intent-filter android:priority="1000">
<action android:name="zhang" />
</intent-filter>
</receiver>
2.动态广播
//动态广播
bu2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
dongtai= new dongtai();//new一个广播对象
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("lisi");//添加频道
registerReceiver(dongtai,intentFilter);
Intent intent = new Intent();
intent.setAction("lisi");
sendBroadcast(intent);
}
});
package com.bw.gguangbo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class dongtai extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("lisi")){
Toast.makeText(context, "李四", Toast.LENGTH_SHORT).show();
}
}
}
3.有序广播
//有序广播
bu3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction("zhang");
sendOrderedBroadcast(intent,null);
}
});
package com.bw.gguangbo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
public class MyReceiver2 extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context, "王二", Toast.LENGTH_SHORT).show();
//判断是否是有序广播
if (isOrderedBroadcast()){
abortBroadcast();//中断广播
}
}
}
在清单文件里
<receiver
android:name=".MyReceiver2"
android:enabled="true"
android:exported="true">
<!-- priority设置优先级-->
<intent-filter android:priority="100">
<action android:name="zhang" ></action>
</intent-filter>
</receiver>