Android广播机制初步学习——短信黑名单


andriod广播机制中主要使用到的两个类:Broadcast和BroadcastReceiver。即一个发送一个接受。
发送的时候是用Intent来携带数据(广播)的,利用Intent中的标识来匹配,实现接收需要接收的广播。
首先是注册,有两种方式:

一个是配置文件注册:
  1. <receiver Android:name=".ClassName">  
  2. <intent-filter>  
  3. <action android:name="android.intent.action.XXXX"/>  
  4. </intent-filter>  
  5. </receiver>   
一个是代码注册:
  1. /* 
  2. * 编码注册广播接收器 
  3. */  
  4. public void regist(View v)  
  5. {  
  6. // receiver = new TestBR();   
  7. isRegist = true;  
  8. IntentFilter filter = new IntentFilter("android.intent.action.TestBR");  
  9. this.registerReceiver(receiver, filter);  
  10. Toast.makeText(this"注册成功"0).show();  
  11. }  
  12.   
  13.   
  14. /* 
  15. * 编码解注册广播接收器 
  16. */  
  17. public void unregist(View v)  
  18. {  
  19. if (receiver != null && isRegist)  
  20. {  
  21. unregisterReceiver(receiver);  
  22. receiver = null;  
  23. isRegist = false;  
  24. Toast.makeText(this"解注册成功"0).show();  
  25. else  
  26. {  
  27. Toast.makeText(this"未注册"0).show();  
  28. }  
  29.   
  30.   
  31. }  
  32.   
  33.   
  34. //应用程序销毁的时候,要把广播接收器一起销毁。   
  35. @Override  
  36. protected void onDestroy()  
  37. {  
  38. if (receiver != null && isRegist)  
  39. {  
  40. unregisterReceiver(receiver);  
  41. receiver = null;  
  42. isRegist = false;  
  43. Toast.makeText(this"解注册成功"0).show();  
  44. }  
  45.   
  46.   
  47. super.onDestroy();  
  48. }  
配置文件注册时:相当于是注册到android系统的CPU里面去了,一旦注册成功,就无法再控制他。不管应用程序关没关闭,只要有对应的广播来,都会调用对应的广播接收器类。比如电池管理程序,比如短信、电话的黑名单功能,都是需要系统开机就运行,一直监测到关机。
代码注册时:应用程序关闭就不再接受广播。
在注册广播的时候,要分析清楚应用程序的功能,选择合适的注册方式。


android的广播分三种:
1、常规广播:所有匹配的接收器都会接收到此广播。                                发送方式:sendBroadcast(intent)
2、粘性广播:可以在接受到注册之前发出的广播。最常见的例子就是WIFI。          发送方式:sendStickyBroadcast(intent)
3、有序广播:根据广播接收器的意图过滤器的priority属性值的大小一次调用,并可以通过调用abortBroadcast()阻止广播继续向下传播。
发送方式:sendOrderedBroadcast(intent,"permission").这里短信的广播机制就是有序广播,因此可以在接收到广播之后做点儿什么,加黑或者转发什么的。
  • 1
  • 2
  • 下一页

相关内容