Android广播机制初步学习——短信黑名单
Android广播机制初步学习——短信黑名单
andriod广播机制中主要使用到的两个类:Broadcast和BroadcastReceiver。即一个发送一个接受。发送的时候是用Intent来携带数据(广播)的,利用Intent中的标识来匹配,实现接收需要接收的广播。
首先是注册,有两种方式:
一个是配置文件注册:
- <receiver Android:name=".ClassName">
- <intent-filter>
- <action android:name="android.intent.action.XXXX"/>
- </intent-filter>
- </receiver>
- /*
- * 编码注册广播接收器
- */
- public void regist(View v)
- {
- // receiver = new TestBR();
- isRegist = true;
- IntentFilter filter = new IntentFilter("android.intent.action.TestBR");
- this.registerReceiver(receiver, filter);
- Toast.makeText(this, "注册成功", 0).show();
- }
- /*
- * 编码解注册广播接收器
- */
- public void unregist(View v)
- {
- if (receiver != null && isRegist)
- {
- unregisterReceiver(receiver);
- receiver = null;
- isRegist = false;
- Toast.makeText(this, "解注册成功", 0).show();
- } else
- {
- Toast.makeText(this, "未注册", 0).show();
- }
- }
- //应用程序销毁的时候,要把广播接收器一起销毁。
- @Override
- protected void onDestroy()
- {
- if (receiver != null && isRegist)
- {
- unregisterReceiver(receiver);
- receiver = null;
- isRegist = false;
- Toast.makeText(this, "解注册成功", 0).show();
- }
- super.onDestroy();
- }
代码注册时:应用程序关闭就不再接受广播。
在注册广播的时候,要分析清楚应用程序的功能,选择合适的注册方式。
android的广播分三种:
1、常规广播:所有匹配的接收器都会接收到此广播。 发送方式:sendBroadcast(intent)
2、粘性广播:可以在接受到注册之前发出的广播。最常见的例子就是WIFI。 发送方式:sendStickyBroadcast(intent)
3、有序广播:根据广播接收器的意图过滤器的priority属性值的大小一次调用,并可以通过调用abortBroadcast()阻止广播继续向下传播。
发送方式:sendOrderedBroadcast(intent,"permission").这里短信的广播机制就是有序广播,因此可以在接收到广播之后做点儿什么,加黑或者转发什么的。
|
评论暂时关闭