一、知识准备

①常驻广播接受者:使用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 常驻广播和非常驻广播相关推荐

  1. 便携设备 android,mini型便携Android通讯设备——与外围硬件沟通桥梁

    mini型便携通讯设备概述: 该设计介绍的是搭接Android设备与外围硬件之间通讯的转换工具,也叫"IOIO".比如外部传感器和伺服系统等硬件之间的通信.与其他的Android通 ...

  2. android系统休眠发广播,Android - BroadcastReceiver

    BroadcastReceiver BroadcastReceiver,广播接收者,用来接收系统和应用的广播,并做出相应的处理,如电量过低时提示用户充电等: BroadcastReceiver 是 A ...

  3. Broadcast广播-Android

    一.Broadcast 1.定义 在 Android 中,Broadcast 是一种在应用程序之间传输信息的机制,要发送的广播内容是一个 Intent,这个 Intent 中可以携带我们要传送的数据. ...

  4. android 增加一条广播,Android中BroadcastReceiver广播使用及注意点

    Android中的广播用途很广,是四大组件之一.在android中可以看到它的各种应用,从系统发出的广播,用户自定义的广播等. 这里详细记录下广播的分类以及使用方法. 广播,是由两方面组成一个流程:广 ...

  5. android 收不到短信广播,android – 短信广播接收器没有得到textmessage

    我做了什么 大家好,我正在创建一个短信广播接收器,我刚刚用本教程建立了一个:Broadcasttutorial.在我完成代码之后,我更新了我的Manifest.之后我将短信从我的另一部手机发送到我的手 ...

  6. android的动态注册,Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发...

    本文将带你了解Android应用开发之BroadcastReceiver(广播)的静态注册和动态注册 --Android开发,希望本文对大家学Android有所帮助 BroadcastReceiver ...

  7. android 静态注册wifi广播,Android中BroadcastReceiver详解

    BroadcastReceiver是什么? Android app可以发送广播也可以接收系统或者其它app发送的广播,是发送/订阅的设计模式.这些广播被发送当重要的事件发生的时候.例如,安卓系统发送广 ...

  8. android 程序退出广播,android 利用广播实现程序的强制退出

    利用广播机制,实现程序的强制退出. 前面有篇博文,写到了一键退出,这里利用到了那里的ActivityCollector的集合和BaseActivity 功能:打开程序后,先登录,登录成功后,进入主页面 ...

  9. android o 跨进程广播,[Android] Android O 广播限制

    问题 因为项目需要迁移到8.0平台,发现有一个系统应用打不开,从log发现如下描述: BroadcastQueue: Background execution not allowed: receivi ...

最新文章

  1. DDD分层架构最佳实践
  2. oracle语句转成mysql语句_如何监控Mysql语句
  3. Git教程学习(四)
  4. IE浏览器整页截屏程序
  5. 2014中国软件开发者调查
  6. php5.0 添加接口,Thinkphp5.0模型---插入数据
  7. 每天一点Linux --- 在Linux终端下调用当前目录下的可执行文件时需要加上./的原因...
  8. 本机mysql无法进行碎片整理有什么用,试试mysql数据碎片整理吧解决astgo经常死机变慢的问题...
  9. mysql handbook_MySQL 8 Administrator’s Guide
  10. 华为交换机修改radius服务器地址,华为交换机修改radius服务器地址
  11. 遗传算法bp神经网络原理,bp神经网络和遗传算法
  12. catia曲面设计从入门到精通_CATIA V5曲面设计从入门到精通
  13. STM32F103 -STM32基础语法 -unfinished -unfinished-unfinished
  14. python discuz_[Python代码]Discuz!论坛(X2.5)发帖及回复脚本
  15. 华为P40系列搭载HMS后,华为钱包很不错
  16. 一程序员辞职开发赌博软件,2年涉案4千万被抓
  17. 阳光宽频加密算法破解,找出隐藏真实地址。
  18. linux qq远程桌面连接,还在用QQ远程桌面?这款软件还能用手机控制电脑!
  19. 主板跳线连接方法揭秘
  20. 原创 | ArcGIS保存MXD的3个注意事项

热门文章

  1. 船舶电子电气工程专业出来的交响_船舶电子电气工程专业
  2. 小米手机,相机程序调试,点击拍照无法启动相机或者无法保存图片
  3. 经典智力面试题[转载]
  4. 「 Java开发规范 」10人小团队Java开发规范参考这篇就够了
  5. JavascriptACM模式牛客输入输出
  6. 04. requests模块入门与三个案例(搜狗搜索/百度翻译/豆瓣电影)
  7. Tensorflow2.0安装教程(windows系统,CPU和GPU版本)
  8. jz2440电子书(三)字体层
  9. 宝讯网捷:拼多多无货源开店模式怎么操作?
  10. 一款不错的PHP在线文件管理系统,PHP WEBFTP