android广播服务器
‘壹’ Android 第六讲 广播接收器和服务
两种方式:静态注册和动态注册
动态注册:
1)动态注册:需要定义一个继承自BroadcastReceiver类的子类,该接收器需要在Activity中的onDestroy中注销
2)静态注册:通过在AndroidManifest.xml中配置
两种广播形式:有序广播和无序广播
1)无序广播:接受标准广播的接收器将同时收到广播消息,异步执行,没有先后顺序 sendBroadCast
2)有序广播:sendOrderedBroadCast,按照一定顺序先后被接受顺序,由priority属性决定,abortBroadCast中断广播
如果只想在本应用中发送和接受广播,使用LocalBroadcastReceiver来对广播进行管理
本地广播不支持静态注册
优点 :安全高效
Service是Android中的一种组件,和Activity的级别一致,但不能自己运行,只能后台运行,和其他组件交互,服务必须注册才能使用
本地服务:服务依附在主线程中,节约资源,主线程死掉服务终止
远程服务:服务在独立进程中,灵活性好 ,占用资源高
两种服务的启动模式:
1)start方式:调用者和服务之间没有关联,调用者退出不会影响服务,startService启动服务,如果服务不存在,调用onCreat方法,然后onStartCommand被调用。stopService关闭服务,onDestroy方法被调用
2)bind方式:调用者和服务绑定,调用者退出,服务终止bindService启动服务,onCreate方法创建服务,onBind方法绑定服务,onUnbind方法解绑,onDestory在服务结束时调用
‘贰’ 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
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);
}
}
}
}
‘叁’ 什么是android的四大组件
Android的四大组件是:活动、服务、广播接收器和内容提供者。
活动: 是Android应用中提供用户界面的主要组件。 是用户与应用程序交互的窗口,用于展示相关的界面和接收用户输入。 一个应用可以包含多个活动,但只有一个活动处于活跃状态。
服务: 是Android中的后台组件,用于执行长期运行的工作。 在用户不与应用程序的界面交互时仍然运行,如播放音乐、在后台更新内容或执行文件下载等任务。 服务可以在用户启动后持续运行,即使切换到其他应用或界面。
广播接收器: 用于接收来自系统或其他应用程序发送的广播信息。 可以接收系统级事件或自定义事件的通知。 通过注册感兴趣的广播类型,广播接收器可以触发相应的动作或更新应用程序的状态。
内容提供者: 是一个存储和提供数据访问的应用程序组件。 允许其他应用程序查询和共享数据,提供了一种标准化的方式来存储和检索数据。 是应用程序间共享数据的桥梁,确保数据的访问受到适当的控制和保护。
‘肆’ Android四大组件是什么
Android四大组件是:活动、服务、广播接收器、内容提供商。
活动:
- Activity是Android系统的根本,所有在Android系统上运行的程序流程都必须在Activity中运行。
- 它可以看作是一个框架或页面,每个程序会由多个Activity组成,用于展示不同的界面和功能。
服务:
- Service是Android中非常重要的组件,它不能自己运行,只能在后台运行。
- Service的主要作用是与Android的其他组件进行交互,例如,在后台播放音乐、处理网络请求等。
广播接收器:
- BroadcastReceiver是Android系统中程序之间传递信息的一种机制。
- 它能够接收或发送通知,并可以对接收到的信息进行过滤和响应。例如,接收短信、电池电量变化等通知。
内容提供商:
- Content Provider是专门为第三方应用设计的组件,它提供了一个内容窗口,并保留数据库和文件。
- 它的主要作用是让第三方应用能够访问和保护其中的数据。例如,访问联系人信息、日历事件等。
这些组件在Android系统中相互配合,确保系统的正常运行,是缺一不可的。同时,为了完整且灵活地使用这些组件,我们需要在AndroidManifest.xml文件中先注册它们。
‘伍’ android四大基本组件分别是
Android四大基本组件分别是:活动、服务、广播接收器和内容提供者。
活动:
- 是Android应用中最常见且最基本的组件。
- 代表用户与应用进行交互的一个界面,每个活动都被实现为一个单独的屏幕。
- 活动之间可以通过Intent进行通信,实现数据的传递和界面的跳转。
服务:
- 用于在后台执行长时间运行操作而不提供用户界面的组件。
- 即使应用的主界面被关闭或者用户正在与其他应用交互,服务依然可以保持运行状态。
- 常用于执行如音乐播放、文件下载等后台任务。
广播接收器:
- 用于接收来自系统或者其他应用发出的广播消息。
- 这些消息可以是关于系统事件的通知,比如电池电量低、网络状态变化等。
- 也可以接收应用自定义的消息,用于实现应用间的通信或响应系统事件。
内容提供者:
- 是一种封装了数据并提供给其他应用访问的组件。
- 允许应用之间共享数据,而不需要直接访问对方的数据库或者其他存储机制。
- 如通讯录应用使用内容提供者来共享联系人信息,供其他应用读取和显示。
