1. 简述在android中如何发送广播消息
1.发送广播
Intent intent = new Intent(BroadcastAction);
Bundle bundle = new Bundle();
bundle.putString("***", SUCCESS);
bundle.putString("FullPathName", mFullPathName);
intent.putExtras(bundle);
sendBroadcast(intent);
2.在Activity中创建一个内部类MyBroadcastReceiver扩展BroadcastReceiver,并在其中实现onReceive方法。
3.在Activity中声明一个MyBroadcastReceiver类型的成员变量,并注册:
private MyBroadcastReceiver myBroadcastReceiver;
...
myBroadcastReceiver = new MyBroadcastReceiver();
IntentFilter filter = new IntentFilter();
filter.addAction(BroadcastAction);
registerReceiver(receiver, filter);
4.使用完后要记得释放
unregisterReceiver(receiver);
注:1和2中的 BroadcastAction要是同一个Action
2. Android开发中怎么把广播中处理后的信息传递给Activity
1
class MyReceiver extends BroadcastReceiver{
/**
* 接收广播
* @param context 上下文
* @param intent 就是通过sendBroadcast发送的Intent对象
*/
@Override
public void onReceive(Context context, Intent intent) {
}
}
2
//相当于搭电台
//定频段
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("androidxx.intent.action.CCTV");
//注册广播接收器
myReceiver = new MyReceiver();
/**
* 参数一 BroadcastRecriver 对象
* 参数二 IntentFileer对象 此对象用于决定接受什么频道的广播
*/
registerReceiver(myReceiver,intentFilter);
3
//发送广播信息
Intent intent = new Intent();
intent.setAction("androidxx.intent.action.CCTV");
intent.putExtra("msg","中C");
4
sendBroadcast(intent);
3. Android Studio实现点击按钮发送广播,并动态注册实现广播接收者,接收到广播后显示一个TOAST
思路:
java">发送广播
Intentintent=newIntent()
intent.setAction("com.xxx.verify");//这里设置Ation,可以是任意字符串
sendBroadcast(intent);
接收广播;
//动态注册广播接收者
VerifyReceiverreceiver=newVerifyReceiver();
IntentFilterfilter=newIntentFilter();
filter.addAction("com.xxx.verify");//要和发送广播Action一致
registerReceiver(receiver,filter);
//自定义广播
{
@Override
publicvoidonReceive(Contextcontext,Intentintent){
//处理业务逻辑,
}
}
4. android广播机制的广播机制的三要素
Android广播机制包含三个基本要素:广播(Broadcast) - 用于发送广播;广播接收器(BroadcastReceiver) - 用于接收广播;意图内容(Intent)-用于保存广播相关信息的媒介。Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。
5. android中通过什么方法发送无序广播
起一个线程,每发一个广播后就sleep一分钟,如此循环。(或者接受系统的timechanged这个广播,这个广播好像一分钟发一次)。
Android 在发送广播时的方法 sendBroadcast(Intent)。
①:Intent myIntent = new Intent();——【创建Intent对象】
②:myIntent.setAction(String)——【设置一般的要执行的动作。参数:动作一个动作的名称,如ACTION_VIEW。应用程序的具体行动,应与供应商的包名作为前缀。】
③:myIntent.putExtra(String,Object)——【广播中额外发送的数据,String为自定义key,Object表示多种数据类型】
④:sendBroadcast(myIntent);——【发送广播】
接收广播
Android在接收广播的方法是注册一个广播接收器 registerReceiver(MyReceiver,IntentFilter)。
①:首先创建MyReceiver类(类名自定义) 继承 BroadcastReceiver类。——【创建广播接收器】
②:在MyReceiver中重写public void onReceive(Context context, Intent intent)方法。这个方法在接收到广播后触发。——【重写处理方法】
③:在Activity或者Service启动时 onCreate()、onStartCommand()等方法中实例化 MyReceiver类——【启动时实例化广播接收器】
④:IntentFilter filter = new IntentFilter();——【创建IntentFilter对象 意图过滤器】
⑤:filter.addAction(String);——【在过滤器中加入过滤条件,说明接收什么广播】
⑥:registerReceiver(cmdReceiver, filter);——【注册广播,参数为(广播接收器,意图过滤器)】
6. android发消息和发广播的区别
2者是都用地发送一则消息。
发消息是一对一的发.主要用于前台起个提示作用,通常有个界面会把消息内容显示出来。
发广播是一对多的发.广播消息发出来后,只有订阅了该广播的对象(activity,service等)才会接收广播出来的消息,并做出相应处理。
7. android 怎么发送系统广播
分为4步:
首先要声明广播
其次要注册广播,有两种方式:xml注册和代码注册
发送广播
收听开机广播
268101305698999
8. android中怎么发送带内容的有序广播
(一),BroadcastReceiver用于监听被广播的事件(Intent),为了达到这个目的,BroadcastReceiver必须进行注册,注册的方法有以下两种:
1、静态注册:
静态注册方式是在AndroidManifest.xml的application里面定义receiver并设置要接收的action。
如果在清单配置文件中配置了广播接收器,那么程序在安装后会自动注册广播接收器。
静态注册方式的特点:不管该应用程序是否处于活动状态,都会进行监听。
<receiver
android:name=".CallReceiver"
android:enabled="true">
<intent-filter >
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
其中,MyReceiver为继承BroadcastReceiver的类,重写了onReceiver方法,并在onReceiver方法中对广播进行处理。<intent-filter>标签设置过滤器,接收指定action广播。
2、动态注册:
动态注册方式是在activity里面调用当前上下文对象的registerReceiver() 方法 来注册,和静态的内容差不多。一个形参是receiver对象,另一个是IntentFilter对象。而IntentFilter构造方法的参数是要接收的action。
动态注册方式特点:在代码中进行注册后,当应用程序关闭后,就不再进行监听。
MyReceiver receiver = new MyReceiver();
//创建过滤器,并指定action,使之用于接收同action的广播
IntentFilter filter = new IntentFilter("android.intent.action.PHONE_STATE");
//注册广播接收器
registerReceiver(receiver, filter);
(二)、发送广播:
// 指定广播目标Action
Intent intent = new Intent("MyReceiver_Action");
// 可通过Intent携带消息
intent.putExtra("msg", "发送广播");
// 发送广播消息
sendBroadcast(intent);
(三)、注销BroadcastReceiver:
1、一般在onStart中注册BroadcastReceiver,在onStop中取消BroadcastReceiver。
2、一个BroadcastReceiver 对象只有在被调用onReceive(Context, Intent)时才有效,当从该函数返回后,该对象就无效的了,结束生命周期。
//注销广播接收器
unregisterReceiver(receiver);
9. android c++怎么发送广播
最大的可能是广播没有注册
1)第一种不是常驻型广播,也就是说广播跟随activity的生命周期。注意: 在activity结束前,移除广播接收器。(代码里注册)
2)第二种是常驻型,也就是说当应用程序关闭后,如果有信息广播来,程序也会被系统调用自动运行。(androidmanifest.xml注册)