本文共 1837 字,大约阅读时间需要 6 分钟。
普通广播
有序广播
优点:1,按优先级的不同,优先Receiver可对数据进行处理,并传给下一个Receiver
2,通过abortBroadcast可终止广播的传播
缺点:效率低
工程
MainActivity.java是程序住进口。
MyBroadcastReceiver.java等都是广播接收者,只是等级不一样。
FinalRecevier.java是有序广播的时候,即使广播被拦截了,这个还是可以接收到广播的。
在MyBroadcastReceiver.java中,代码都差不多:
public class MyBroadcastReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { System.out.println("MyBroadcastReceiver1111111接受到的广播"); Toast.makeText(context, "MyBroadcastReceiver", Toast.LENGTH_SHORT).show(); }}
在MainActivity.java中:
public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click(View view) { Intent intent = new Intent(); intent.setAction("com.yydcdut.nima"); //无序广播 sendBroadcast(intent); //有序广播 //sendOrderedBroadcast(intent, null); //sendOrderedBroadcast(intent, null, new FinalRecevier(), null, 0, null, null); }}
在某个广播接收的类中加入
abortBroadcast();
这是去拦截广播,但是FinalRecevier还是接收到了的,无论怎么拦截广播。
我是天王盖地虎的分割线
源代码:
广播发送.zip
本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3803666.html,如需转载请自行联系原作者