博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android学习笔记 :关于broadcast
阅读量:5140 次
发布时间:2019-06-13

本文共 2130 字,大约阅读时间需要 7 分钟。

 

在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver

  • 活动(Activity) - 用于表现功能  
  • 服务(Service) - 相当于后台运行的 Activity 
  • 广播(Broadcast) - 用于发送广播  
  • 广播接收器(BroadcastReceiver) - 用于接收广播 
  • Intent - 用于连接以上各个组件,并在其间传递消息  

 

 

 

------------------------------------------------------悲伤的分割线----------------------------------------------------------------------------

一、只是简单的接收

这个很简单。

想要监听屏幕锁屏代码:

1)注册一个接收器(文中用程序注册)

        final IntentFilter filter = new IntentFilter();  

        filter.addAction(Intent.ACTION_SCREEN_OFF);  
        filter.addAction(Intent.ACTION_SCREEN_ON);  
        registerReceiver(mBatInfoReceiver, filter);

2)实现接收器程序

private final BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver() {  

.....

if(Intent.ACTION_SCREEN_ON.equals(action)){  

              System.out.println(1);

...}

 

 

------------------------------------------------------悲伤的分割线----------------------------------------------------------------------------

二、广播自定义的行为。

1. 构造Intent,发送广播

static final String ACTION_1 = "com.eoeAndroid.action.NEW_BROADCAST_1";    //这个action是自己定义的

Intent intent = new Intent(ACTION_1);  
sendBroadcast(intent);

 2. 继承BroadcastReceiver类,实现一个广播接受类

 public class EoeAndroidReceiver extends BroadcastReceiver {  

    Context context;  
  
    @Override  
    public void onReceive(Context context, Intent intent) {  
        // TODO Auto-generated method stub   
        this.context = context;  
        //接受信息并处理   
    }  
}
3. 注册和注销BroadcastReceiver

方法1:在AndroidManifest.xml中注册

<receiver Android:name="EoeAndroidReceiver1">  

    <intent-filter>  
        <action  
            Android:name="com.eoeandroid.action.NEW_BROADCAST_1"/>  
    </intent-filter>  
</receiver> 
方法2:直接在代码中注册
IntentFilter filter = new IntentFilter(NEW_BROADCAST);   //这个原文没有写,NEW_BROADCAST应该是等于"com.eoeandroid.action.NEW_BROADCAST_1"
EoeAndroidReceiver eoeAR = new EoeAndroidReceiver();  
registerReceiver(eoeAR, filter); 
注销
unregisterReceiver(eoeAR);

 

 ------------------------------------------------------悲伤的分割线----------------------------------------------------------------------------

三、那个终于彻底看懂了的程序

学习源:

主要的部分如图所示。Main函数一开始就注册接收 action为com.webabcd.service.msg(自定义action)的intent。

MyService的SendMsg函数调用sendBroadcast,广播行为为com.webabcd.service.msg的intent。

转载于:https://www.cnblogs.com/meetcomet/archive/2011/10/25/2223616.html

你可能感兴趣的文章
h5唤起app
查看>>
SQL Server 2008 /SQL Server 2008 R2 配置数据库邮件
查看>>
[转]vs2010编译金山代码
查看>>
数学图形之Boy surface
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
3.浏览器检测
查看>>
01: socket模块
查看>>
Border-radius
查看>>
mysql触发器
查看>>
Redis学习笔记(1)Redis安装和启动
查看>>
淌淌淌
查看>>
DirectShow编程实现摄像头视频捕捉
查看>>
JAVA 异常处理机制
查看>>
[读书笔记2]《C语言嵌入式系统编程修炼》
查看>>
数据结构 - 链队列的实行(C语言)
查看>>
mac 在终端使用命令行启动脚本,无法使用自己安装的python去执行脚本问题 含 (which python 查看python解析器位置)...
查看>>
核心编程练习(2)
查看>>
redis笔记---不定时更新
查看>>
内置函数map, reduce, filter 的使用
查看>>
js(react.js) button click 事件无法触发
查看>>