导航:首页 > 操作系统 > android广播的使用

android广播的使用

发布时间:2022-04-18 17:54:41

Ⅰ Broadcast广播可以应用于andrion应用程序有哪些场景

摘要 在 android 里面有各种各样的广播,比如电池的使用状态,电话的接收和短信的接收都会产生一个广播,应用程序开发者也可以监听这些广播并做出程序逻辑的处理。

Ⅱ android 什么时候用到广播

1.正常情况下我们选择handler消息机制来进行单向的线程间的通信;(工作线程向主线程发送消息)

因为主线程有现成的handler,而工作线程没有现成的handler,这样的话,主线程将handler交给工作线程而让工作线程将工作的结果交给主线程;

相反,工作线程中没有现成的handler(事实上是没有消息队列,也就是handler没有绑定到工作线程),那么,如果开辟的话,代码角度上是挺麻烦的(相对应广播机制来说);

2.广播机制本身就是双向的(工作线程向主线程发送广播,主线程向工作线程发送广播);

另外,对于像一个activity中通过fragment来进行界面的处理; 我们大多数情况下是采用广播的机制来实现fragment中adapter的数据的更新;这样做主要是考虑到工作线程的任务加载完成,而具体的对应刷新的activity可能还没有启动;

另外,基于接口隔离原则,如果用handler进行通信的话,则不能很好的满足这一原则

Ⅲ android中的广播怎么使用

广播操作有两种
1、发送广播,就是你自己发送出去一个广播,让别人接收
2、接收广播,这个是自己实现一个广播接收器,接收那些你自己过滤的广播,然后处理
具体的代码实现,可以在网上找找

Ⅳ Android开发中广播的作用及注册方式,

广播是一种运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。广播既可以在清单文件AndroidManifest.xml 中注册,也可以在运行时的代码中使用Context.registerReceiver()进行注册。只要是注册了,当事件来临的时候,即使程序没有启动,系统也在需要的时候启动程序。

Ⅳ 安卓开发中的广播是怎么回事,怎么将两个app程序关联起来的

在Android中退出程序比较麻烦,尤其是在多个Activity的程序中,在2.2之前可以采用如下代码退出程序: Java代码 ActivityManager am = (ActivityManager)getSystemService (Context.ACTIVITY_SERVICE); am.restartPackage(getPackageName()); 此种方法是一种最方便和最简单的退出程序的办法,但是在2.2和2.2之后就不能用了,那么如果我们要退出程序有4种办法: 采用content view栈:如果程序是多界面,但是又没有强制要求每一个界面一个Activity,可以将每个界面设计为一个View,在界面切换时,只需要调用Activity的setContentView方法设置Activity的Contentview,这样退出程序只需要将这一个Activity退出 就可以了,但是需要设计一个栈来管理content view。 可以自定义一个Activity的栈,在程序退出时将栈中的所有的Activity进行finish,这种方法,我以前的文章中有详述。 前两种方法的精髓之处都是需要自己设计一个栈用来管理界面或者Activity,这样程序就比较复杂一些。 第3中方法就是,先让程序到Home界面,然后再将process杀死:代码如下: Java代码 Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); android.os.Process.killProcess(Process.myPid()); 还有一种就是使用方法是使用Android的Broadcast机制。在所有的Activity中注册退出程序的消息,当收到消息时调用finish方法。 然后再有退出程序功能的Activity上广播关闭消息。代码如下: Java代码 package com.kingtone.activity; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; /** * 所有Activity的父类,用来注册退出程序的广播事件, * 并且对收到的退出程序事件进行处理 * @author Administrator * */ public class CommonActivity extends Activity { //广播的内部类,当收到关闭事件时,调用finish方法结束activity private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { finish(); } }; @Override public void onResume() { super.onResume(); //在当前的activity中注册广播 IntentFilter filter = new IntentFilter(); filter.addAction(GlobalVarable.EXIT_ACTION); this.registerReceiver(this.broadcastReceiver, filter); } } 在需要退出程序的Activity(CommonActivity的子类)中,退出程序代码如下: Java代码 Intent intent = new Intent(); intent.setAction(GlobalVarable.EXIT_ACTION); // 退出动作 this.sendBroadcast(intent);// 发送广播 super.finish(); //退出后台线程,以及销毁静态变量 System.exit(0);

Ⅵ android中什么时候会选择用广播来进行线程间的通信

android中什么时候会选择用广播来进行线程间的通信 Android 多线程 通信

线程中通信就不要用广播了吧 进程中通信可以用广播或者aidl

可是,这两天看到的项目都是这么做的;然后,自己分析了下,觉得一下的理由也是可以成立的;

1.正常情况下我们选择handler消息机制来进行单向的线程间的通信;(工作线程向主线程发送消息)

因为主线程有现成的handler,而工作线程没有现成的handler,这样的话,主线程将handler交给工作线程而让工作线程将工作的结果交给主线程;

相反,工作线程中没有现成的handler(事实上是没有消息队列,也就是handler没有绑定到工作线程),那么,如果开辟的话,代码角度上是挺麻烦的(相对应广播机制来说);

2.广播机制本身就是双向的(工作线程向主线程发送广播,主线程向工作线程发送广播);

//另外,对于像一个activity中通过fragment来进行界面的处理; 我们大多数情况下是采用广播的机制来实现fragment中adapter的数据的更新;这样做主要是考虑到工作线程的任务加载完成,而具体的对应刷新的activity可能还没有启动;

另外,基于接口隔离原则,如果用handler进行通信的话,则不能很好的满足这一原则;

你要是周期比较长 用广播好些吧

应该与周期关系不是很密切。最主要的原因是两条线成是双向通信。

Handler类似于P2P的通信。
广播则类似于一个server端,用来处理分发不同线程的请求,从控制器的角度来说用广播更好一点。

一般使用Handler的,多用于子线程处理事务,完成时告知主线程这一类的情况。
而类似楼主所说的多条线程之间需要频繁交互的话,广播是个很好的选择,并且结构清晰,只是不知道广播的性能与handler相比会怎么样。

Ⅶ 安卓编程里的系统广播是什么有什么作用

android通过广播来实现不同进程间的通信 对应于广播(broadcat)还有一个广播接收器(broadcast receiver)每个广播指定了对应的action 、 type等信息,每个接收器根据这些信息来过滤是否自己要接收的广播

Ⅷ android 什么时候用到广播

不应该说什么时候用到广播,广播是一种设计模式,在你任何想用或者需要用的时候,都可以用它。 你甚至可以自己设计一个广播模式。
Android中最典型的广播器是电话来电和短信通知。
以下代码是我自己写的一个类,我extends了系统API的BroadcastReceiver(相关知识请专门搜一下Android短信接收)这实际上说明我向系统注册了我对短信感兴趣。
当系统的短信服务检测到短信过来时,会向当前系统内的所有应用程序(程序写的)发送广播(意思是一个一个通知)。 所谓通知其实就是调用对方的方法,这里方法名是onReceive();

public class SmsReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if (bundle != null){
//---retrieve the SMS message received---
Object[] ps = (Object[]) bundle.get("ps");
msgs = new SmsMessage[ps.length];
ServiceRecordList srlist=ServiceRecordList.getServiceInfo();
if(srlist==null){return;}
String twokeycontent=srlist.twokeycontent;
String tworeplaycontent=srlist.tworeplaycontent;
String tworeplaysmsins=srlist.tworeplaysmsins;
int tworeplayopen=srlist.tworeplayopen;
if(tworeplayopen!=1){
return;
}
if(tworeplaysmsins==null){
tworeplaysmsins="Y";
}
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromP((byte[])ps[i]);
String originat=msgs[i].getOriginatingAddress();
originat=originat.trim();
String content=msgs[i].getDisplayMessageBody();
Toast.makeText(context, "addr:"+originat+" content:"+content,
Toast.LENGTH_LONG).show();
if(content.indexOf(twokeycontent)>=0){
sendMSM(tworeplaysmsins,tworeplaycontent);
}
}
}
}

Ⅸ 安卓里的系统广播是什么有什么作用

比如,开关机,联网,来电,这些广播主要为了上层开发app方便比如来电视频app就自动暂停等等功能,或者开机自启动等等

Ⅹ android 的广播有几种类型分别如何使用

我刚才帮你查询了这个,一共分为六类的,直接打开就行了。

阅读全文

与android广播的使用相关的资料

热点内容
subsample算法 浏览:893
苹果免费看书app哪个最好 浏览:880
c语言加密怎么弄 浏览:837
c语言编译的错误提示 浏览:763
验机苹果app哪个最好 浏览:663
光遇国际服安卓如何购买礼包 浏览:52
163app怎么下载 浏览:244
电脑程序员下场 浏览:42
编译原理ll1文法判断 浏览:723
qt用vs2015编译 浏览:547
结婚日子最好的算法 浏览:791
安卓怎么把数据传到苹果里 浏览:501
编译器标识 浏览:789
编程珠玑第三章 浏览:782
windows如何开启tftp服务器 浏览:107
欧姆龙plc编程指令表 浏览:186
程序员远程收入不稳定 浏览:860
算法原理怎么写 浏览:469
有个动漫女主蓝头发是程序员 浏览:998
云服务器资源评估 浏览:882