博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于 android receiver
阅读量:7113 次
发布时间:2019-06-28

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

可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。 1.
首先谈谈在androidManifext.xml中注册一个receiver, 例如我们想监听相机按钮按下事件的发生,并且发生后调用我们的camera程序
<receiver android:name="CameraButtonIntentReceiver">             <intent-filter>   

可以在代码文件中声明一个receiver,也可以在manifest中声明一个,前者中的receiver只有在该activity launch起来以后才会监听其所感兴趣的事件,而如果在androidManifext.xml中声明的话,就不受限制,随时可以监听感兴趣的事件。 1.
首先谈谈在androidManifext.xml中注册一个receiver, 例如我们想监听相机按钮按下事件的发生,并且发生后调用我们的camera程序
<receiver android:name="CameraButtonIntentReceiver">             <intent-filter>                 <action android:name="android.intent.action.CAMERA_BUTTON"/>             </intent-filter> </receiver>
另外,当程序需要使用手机相关的服务, 如电话、短信、因特网等功能时,就得在Manifest中添加对于的user-permission。
在这个配置文件中声明了一个receiver用来监听相机的按键事件,所以还需要在代码文件定义与配置文件中同名的receiver:
public class CameraButtonIntentReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {     Intent i = new Intent(Intent.ACTION_MAIN);         i.setClass(context, Camera.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);         context.startActivity(i); } }
2.       关于另外一种,在代码中注册一个receiver,例如我们想在代码文件中监听电池电量的变化,就可以按照如下方法 private final BroadcastReceiver mBatteryReceiver = new BroadcastReceiver() {        @Override         public void onReceive(Context context, Intent intent) {
             String action = intent.getAction();               if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {               …
              }         } }
这种方法需要在onCreate 或者onStart中注册该receiver所感兴趣的intent,如: registerReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);
在onStop及onDestroy中注销监听
unregisterReceiver(mBatteryReceiver, Intent.ACTION_BATTERY_CHANGED);
系统广播可以捕捉系统发出的行为有: 1. “android.provider.Telephony.SMS_RECEIVED” 收到短信 2. Intent.ACTION_BATTERY_CHANGED 剩余的手机电池量 3. Intent.ACTION_MEDIA_MOUNTED  SD卡成功挂载 4. Intent.ACTION_MEDIA_UNMOUNTED SD卡未挂载
5. Intent.ACTION_NEW_OUTGOING_CALL拨打电话 6. Intent.ACTION_PACKAGE_ADDED执行安装 7. Intent.ACTION_PACKAGE_REMOVED 执行卸载

转载地址:http://pnghl.baihongyu.com/

你可能感兴趣的文章
Leetcode #383 Javascript
查看>>
有趣的前端编程题:携程 2018 春招
查看>>
js数据类型--object
查看>>
Vue2.0源码阅读笔记(一):选项合并
查看>>
git - 常用命令
查看>>
一个NSObject对象占多少内存呢?
查看>>
深入学习js之——参数按值传递#9
查看>>
Jackson使用指南
查看>>
Kotlin1.3 协程Api详解:CoroutineScope, CoroutineContext
查看>>
产品思维
查看>>
Flutter 入门指北(Part 2)之基础部件
查看>>
关于前端脚本异常监控的思考
查看>>
Observer源码解析
查看>>
java获取B站弹幕文件的两种方案
查看>>
常用Json工具类
查看>>
数据类型,及深拷贝
查看>>
在 iOS 中使用 GLSL 实现抖音特效
查看>>
Android无障碍:通过Java设置contentDescription (GridView item)
查看>>
【Javascript】探究javascript中的堆/栈/任务队列与并发模型 event loop的关系
查看>>
《Miss Talk》第04期:对话凯叔讲故事 曲艳颂
查看>>