android广播发送与接收演示
2015-01-14 22:59
381 查看
android广播发送与接收演示
Android 中有各式各样的广播,各种广播在Android系统中运行,当系统/应用程序运行时便会向
Android注册各种广播,Android接收到广播会便会判断哪种广播需要哪种事件,然后向不同需要事件的应用程序注册事件,不同的广播可能处理不同的事件也可能处理相同的广播事件,这时就需要Android系统为我们做筛选。
案例分析:
一个经典的电话黑名单,首先通过将黑名单号码保存在数据库里面,当来电时,我们接收到来电广播并将黑名单号码与数据库中的某个数据做匹配,如果匹配的话则做出相应的处理,比如挂掉电话、比如静音等等。
下面通过一个小DEMO来讲解一下广播在Android中如何编写,在Demo中我们设置了一个按钮为按钮设置点击监听通过点击发送广播,在后台中接收到广播并打印LOG信息。代码如下:
1.广播的发送
public class BroadCastActivity extends Activity {
public static final String ACTION_INTENT_TEST = "com.broadcast.test";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ACTION_INTENT_TEST);
sendBroadcast(intent);
}
});
}
}
2.广播的接收与处理.
//接收器代码如下:
public class myBroadCast extends BroadcastReceiver {
public myBroadCast() {
Log.v("BROADCAST_TAG", "myBroadCast");
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.v("BROADCAST_TAG", "onReceive");
}
}
3.Android 如何判断并筛选广播?
前面说过 Android的广播有各式各样,那么Android系统是如何帮我们处理我们需要哪种广播并为我们提供相应的广播服务呢?这里有一点需要大家注意,每实现一个广播接收类必须在我们应用程序中的
manifest中显式的注明哪一个类需要广播,并为其设置过滤器
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.apkabc.broadcast" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".myBroadCast">
<intent-filter>
<action android:name="com.broadcast.test" />
</intent-filter>
</receiver>
</application>
</manifest>
小结:
在Android中如果要发送一个广播必须使用sendBroadCast向系统发送对其感兴趣的广播接收器中。
使用广播必须要有一个intent对象必设置其action动作对象
使用广播必须在配置文件中显式的指明该广播对象
每次接收广播都会重新生成一个接收广播的对象
在BroadCast中尽量不要处理太多逻辑问题,建议复杂的逻辑交给Activity或者
Service 去处理
Android 中有各式各样的广播,各种广播在Android系统中运行,当系统/应用程序运行时便会向
Android注册各种广播,Android接收到广播会便会判断哪种广播需要哪种事件,然后向不同需要事件的应用程序注册事件,不同的广播可能处理不同的事件也可能处理相同的广播事件,这时就需要Android系统为我们做筛选。
案例分析:
一个经典的电话黑名单,首先通过将黑名单号码保存在数据库里面,当来电时,我们接收到来电广播并将黑名单号码与数据库中的某个数据做匹配,如果匹配的话则做出相应的处理,比如挂掉电话、比如静音等等。
下面通过一个小DEMO来讲解一下广播在Android中如何编写,在Demo中我们设置了一个按钮为按钮设置点击监听通过点击发送广播,在后台中接收到广播并打印LOG信息。代码如下:
1.广播的发送
public class BroadCastActivity extends Activity {
public static final String ACTION_INTENT_TEST = "com.broadcast.test";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn = (Button) findViewById(R.id.Button01);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent intent = new Intent(ACTION_INTENT_TEST);
sendBroadcast(intent);
}
});
}
}
2.广播的接收与处理.
//接收器代码如下:
public class myBroadCast extends BroadcastReceiver {
public myBroadCast() {
Log.v("BROADCAST_TAG", "myBroadCast");
}
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.v("BROADCAST_TAG", "onReceive");
}
}
3.Android 如何判断并筛选广播?
前面说过 Android的广播有各式各样,那么Android系统是如何帮我们处理我们需要哪种广播并为我们提供相应的广播服务呢?这里有一点需要大家注意,每实现一个广播接收类必须在我们应用程序中的
manifest中显式的注明哪一个类需要广播,并为其设置过滤器
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.apkabc.broadcast" android:versionCode="1" android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".myBroadCast">
<intent-filter>
<action android:name="com.broadcast.test" />
</intent-filter>
</receiver>
</application>
</manifest>
小结:
在Android中如果要发送一个广播必须使用sendBroadCast向系统发送对其感兴趣的广播接收器中。
使用广播必须要有一个intent对象必设置其action动作对象
使用广播必须在配置文件中显式的指明该广播对象
每次接收广播都会重新生成一个接收广播的对象
在BroadCast中尽量不要处理太多逻辑问题,建议复杂的逻辑交给Activity或者
Service 去处理
相关文章推荐
- android广播发送与接收演示DEMO
- Android使用wifi通过UDP协议发送广播数据包给PC接收不到问题解决方法
- android 发送广播 接收广播 动态广播接收
- 初学Android,BroadcastReceiver之发送接收广播
- MIUI7,Android版本5.0.2,一个程序发送自定义广播,另一个程序没有接收到
- android 广播发送和接收
- 非常实用的android动态注册广播并发送以及接收实例
- 初学Android,BroadcastReceiver之发送接收广播(七十)
- Android 接收系统发送的广播,动态注册和静态注册
- android接收adb发送的系统广播及自定义广播
- Android 广播的发送与接收
- android安全问题(七) 抢先接收广播 - 内因篇之广播发送流程
- Android广播的发送与接收一例
- android安全问题(七) 抢先接收广播 - 内因篇之广播发送流程
- Android UDP广播 客户端循环发送与接收
- Android 广播的发送与接收
- android安全问题(七) 抢先接收广播 - 内因篇之广播发送流程
- 【记录】Android 广播的发送与接收
- Android 有时接收不到自己发送的广播消息