android常驻型广播,Android 常驻广播和非常驻广播
一、知识准备
①常驻广播接受者:使用AndroidManifest.xml注册,接受者不随Activity的销毁而销毁,也就是拥有独立的生命周期。
②非常驻广播接受者:使用registerReceiver(receiver,intentfilter)对广播接收者进行注册。同事需要使用unregisterReceiver(receiver)注销这个广播接收者。注册时表示创建广播接收者,注销时表示销毁这个广播接收者。生命周期由开发者决定。通常在activity的onCreate方法中创建广播接收者,在onDestroy中销毁广播接收者。生命周期可控。
③建议了解http://www.cnblogs.com/xqz0618/p/msg_broadcast.html
二、项目案例一
【标题】利用非常驻广播接受收到短信的广播
【步骤】
①创建一个广播NReceiver
②在Activity中进行注册
③在Activity销毁时注销
【项目结构】
【NReceiver】
【MainActivity】
1 importandroid.Manifest;2 importandroid.content.BroadcastReceiver;3 importandroid.content.IntentFilter;4 importandroid.content.pm.PackageManager;5 importandroid.support.v4.app.ActivityCompat;6 importandroid.support.v4.content.ContextCompat;7 importandroid.support.v7.app.AppCompatActivity;8 importandroid.os.Bundle;9 importandroid.util.Log;10
11 importcom.example.administrator.myapplication.receiver.NReceiver;12
13 public class MainActivity extendsAppCompatActivity {14
15 BroadcastReceiver receiver = null;16
17 @Override18 protected voidonCreate(Bundle savedInstanceState) {19 super.onCreate(savedInstanceState);20 setContentView(R.layout.activity_main);21 getpermission();22
23 registerBroadcast();24
25 }26
27 private voidgetpermission() {28 if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_SMS)29 != PackageManager.PERMISSION_GRANTED||ContextCompat.checkSelfPermission(MainActivity.this,Manifest.permission.RECEIVE_SMS)30 !=PackageManager.PERMISSION_GRANTED){31 ActivityCompat.requestPermissions(MainActivity.this,newString[]{32 Manifest.permission.READ_SMS,Manifest.permission.RECEIVE_SMS33 },1);34 }35 }36
37 private voidregisterBroadcast() {38 receiver = newNReceiver();39 IntentFilter filter = new IntentFilter("android.provider.Telephony.SMS_RECEIVED");40 registerReceiver(receiver,filter);41 Log.i("TAG", "registerBroadcast: ---------register");42 }43
44 @Override45 protected voidonDestroy() {46 super.onDestroy();47 unregisterReceiver(receiver);48 }49 }
【提示】由于是要接收短信的广播,所以需要获取权限
【AndroidManifest】
1
2
【提示】非常驻型广播无需在AndroidManifest中进行注册广播。
【效果】
①利用模拟器开发工具模拟发送信息
②将APP完全退出,再发送信息,不再收到提示
二、项目案例二
【标题】常驻型广播接收收到短信的广播
【提示】再项目一得基础上修改
【AndroidManifest】注册
1
3 android:enabled="true"
4 android:exported="true">
5
6
7
8
【MainActivity】
【提示】由于常驻型广播已经在AndroidManifest注册,则无须利用registerReceiver(receiver,intentfilter)进行注册和销毁。Activity中只需进行动态权限的申请
1 public class MainActivity extendsAppCompatActivity {2
3 BroadcastReceiver receiver = null;4
5 @Override6 protected voidonCreate(Bundle savedInstanceState) {7 super.onCreate(savedInstanceState);8 setContentView(R.layout.activity_main);9 getpermission();10
11 }12
13 private voidgetpermission() {14 if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_SMS)15 != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.RECEIVE_SMS)16 !=PackageManager.PERMISSION_GRANTED) {17 ActivityCompat.requestPermissions(MainActivity.this, newString[]{18 Manifest.permission.READ_SMS, Manifest.permission.RECEIVE_SMS19 }, 1);20 }21 }22
23 }
【效果】
android常驻型广播,Android 常驻广播和非常驻广播相关推荐
- 便携设备 android,mini型便携Android通讯设备——与外围硬件沟通桥梁
mini型便携通讯设备概述: 该设计介绍的是搭接Android设备与外围硬件之间通讯的转换工具,也叫"IOIO".比如外部传感器和伺服系统等硬件之间的通信.与其他的Android通 ...
- android系统休眠发广播,Android - BroadcastReceiver
BroadcastReceiver BroadcastReceiver,广播接收者,用来接收系统和应用的广播,并做出相应的处理,如电量过低时提示用户充电等: BroadcastReceiver 是 A ...
- Broadcast广播-Android
一.Broadcast 1.定义 在 Android 中,Broadcast 是一种在应用程序之间传输信息的机制,要发送的广播内容是一个 Intent,这个 Intent 中可以携带我们要传送的数据. ...
- android 增加一条广播,Android中BroadcastReceiver广播使用及注意点
Android中的广播用途很广,是四大组件之一.在android中可以看到它的各种应用,从系统发出的广播,用户自定义的广播等. 这里详细记录下广播的分类以及使用方法. 广播,是由两方面组成一个流程:广 ...
- android 收不到短信广播,android – 短信广播接收器没有得到textmessage
我做了什么 大家好,我正在创建一个短信广播接收器,我刚刚用本教程建立了一个:Broadcasttutorial.在我完成代码之后,我更新了我的Manifest.之后我将短信从我的另一部手机发送到我的手 ...
- android的动态注册,Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发...
本文将带你了解Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发,希望本文对大家学Android有所帮助 BroadcastReceiver ...
- android 静态注册wifi广播,Android中BroadcastReceiver详解
BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...
- android 程序退出广播,android 利用广播实现程序的强制退出
利用广播机制,实现程序的强制退出. 前面有篇博文,写到了一键退出,这里利用到了那里的ActivityCollector的集合和BaseActivity 功能:打开程序后,先登录,登录成功后,进入主页面 ...
- android o 跨进程广播,[Android] Android O 广播限制
问题 因为项目需要迁移到8.0平台,发现有一个系统应用打不开,从log发现如下描述: BroadcastQueue: Background execution not allowed: receivi ...
最新文章
- DDD分层架构最佳实践
- oracle语句转成mysql语句_如何监控Mysql语句
- Git教程学习(四)
- IE浏览器整页截屏程序
- 2014中国软件开发者调查
- php5.0 添加接口,Thinkphp5.0模型---插入数据
- 每天一点Linux --- 在Linux终端下调用当前目录下的可执行文件时需要加上./的原因...
- 本机mysql无法进行碎片整理有什么用,试试mysql数据碎片整理吧解决astgo经常死机变慢的问题...
- mysql handbook_MySQL 8 Administrator’s Guide
- 华为交换机修改radius服务器地址,华为交换机修改radius服务器地址
- 遗传算法bp神经网络原理,bp神经网络和遗传算法
- catia曲面设计从入门到精通_CATIA V5曲面设计从入门到精通
- STM32F103 -STM32基础语法 -unfinished -unfinished-unfinished
- python discuz_[Python代码]Discuz!论坛(X2.5)发帖及回复脚本
- 华为P40系列搭载HMS后,华为钱包很不错
- 一程序员辞职开发赌博软件,2年涉案4千万被抓
- 阳光宽频加密算法破解,找出隐藏真实地址。
- linux qq远程桌面连接,还在用QQ远程桌面?这款软件还能用手机控制电脑!
- 主板跳线连接方法揭秘
- 原创 | ArcGIS保存MXD的3个注意事项
热门文章
- 船舶电子电气工程专业出来的交响_船舶电子电气工程专业
- 小米手机,相机程序调试,点击拍照无法启动相机或者无法保存图片
- 经典智力面试题[转载]
- 「 Java开发规范 」10人小团队Java开发规范参考这篇就够了
- JavascriptACM模式牛客输入输出
- 04. requests模块入门与三个案例(搜狗搜索/百度翻译/豆瓣电影)
- Tensorflow2.0安装教程(windows系统,CPU和GPU版本)
- jz2440电子书(三)字体层
- 宝讯网捷:拼多多无货源开店模式怎么操作?
- 一款不错的PHP在线文件管理系统,PHP WEBFTP