有时候离开应用就会接收不到系统的广播是因为系统默认发送的广播都会有一个参数

ntent startIntent = new Intent();
startIntent.putExtra("pkg", getPackageName());
startIntent.setAction("com.lenovo.speechcamera.start");
startIntent.setFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);//系统默认发送的是startIntent.setFlags(Intent.FLAG_EXCLUDE_STOPPED_PACKAGES);
sendBroadcast(startIntent);

这样退出应用就会接收不到广播  系统默认不包括停止状态的包

BroadcastReceiver可以是静态定义的 也可以是动态定义的

IntentFilter filter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
40 // 增加可以接收的广播频道(Action)
41 filter.addAction(Intent.ACTION_BATTERY_LOW);// 低电量的广播
42 filter.addAction(Intent.ACTION_POWER_CONNECTED);// 电源连接的广播
43 filter.addAction(Intent.ACTION_POWER_DISCONNECTED);// 电源断开连接的广播
44
45 // 2. 注册广播接收器-接收系统的电量改变广播
46 registerReceiver(myReciver, filter);
静态在Xml文件中定义
     <receiver
41 android:name="com.qf.broadcastreceiver04.MyReceiver02"
42 android:permission="com.qf.permission.print" >
43 <intent-filter android:priority="80" >
44 <action android:name="com.qf.broadcast.print" />
45 </intent-filter>
46 </receiver> 意图服务是异步进行的  执行完操作后就会自己消毁(onDestroy方法) 发带有权限的广播时 要在xml文件中定义权限 接受者要接受广播得先在配置文件中加权限(第一关)还要在receiver中中定义action(频道)是否一致

<receiver android:name="com.qf.broadcastreceiver05.MyReceiver01">
<intent-filter>
<action android:name="com.qf.broadcast.print"/>
</intent-filter>
</receiver>

1、startService();

2、bindService(new Intent(getApplicationContext(),TimerService.class),
conn, BIND_AUTO_CREATE);

两种启动Service的方式后者会受activity影响‘

Broadcast总结 service的更多相关文章

  1. Android -- 利用Broadcast开启Service(转)

    Broadcast和Service都是Android四大组建之一的. 这里的广播是动态的,自己注册的一个广播. 这种最典型的用法就是利用开机广播,然后再起自己的服务,也就是在Android手机中做到开 ...

  2. Android -- 利用Broadcast开启Service

    Broadcast和Service都是Android四大组建之一的. 这里的广播是动态的,自己注册的一个广播. 这种最典型的用法就是利用开机广播,然后再起自己的服务,也就是在Android手机中做到开 ...

  3. 通过BroadCast与service时时监听网络变化

    首先需要一个service: 这里我定义了一个NetworkStateService,在这个service中我写了一个BroadcastReceiver用于监听网络状态发生改变的情况并在这个servi ...

  4. android音乐播放器(Service+ContentProvider+Broadcast+Activity四大组件完成)

    1.获取音乐 1-1:获取手机中的音乐(用ContentProvider内容提供者来完成): package com.firefly.util; import java.util.ArrayList; ...

  5. Android Service 文档

    应用场景: 1  用于将后台逻辑(Service中)和UI逻辑(Activity中)进行解耦,实现Service功能的复用,为其他程序提供功能. 2  后台功能,由于Activity在进入后台时(On ...

  6. 谈谈 ANR 之 Service 超时

    1. 核心源码 关键类 路径(/frameworks/base/) ActiveServices.java services/core/java/com/android/server/am/Activ ...

  7. 安卓APP与智能硬件相结合的简易方案

    第1章 概  述 (作者小波QQ463431476) (来源http://blog.chinaaet.com/zhaocundang/p/5100017645博客) (来源   http://www. ...

  8. Android跨进程通信的四种方式

    由于android系统中应用程序之间不能共享内存.因此,在不同应用程序之间交互数据(跨进程通讯)就稍微麻烦一些.在android SDK中提供了4种用于跨进程通讯的方式.这4种方式正好对应于andro ...

  9. Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)

    在android的应用层中,涉及到很多应用框架,例如:Service框架,Activity管理机制,Broadcast机制,对话框框架,标题栏框架,状态栏框架,通知机制,ActionBar框架等等. ...

随机推荐

  1. Python3 引入sqlite3时出现错误:ModuleNotFoundError: No module named '_sqlite3'

    在Python3 中内置了SQLite3,但是在编译安装完之后执行: import sqlite3 出现错误: ModuleNotFoundError: No module named '_sqlit ...

  2. ORM 框架简介

    对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的.面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应 ...

  3. uva-10054-欧拉回路

    题意:一个项链上面的每一个珠子有俩种颜色,前面一个珠子后面的颜色和后面珠子的前面颜色一样,有一天它断了, 一个人去搜集,问,搜集到的珠子能不能再次串成项链 原以为是链表,原来链表这组数据过不了. 71 ...

  4. oracle imp dmp

    windows>cmd> imp userid=用户名/密码@orcl file=d:\nc60.dmp full=y imp userid=SYSTEM/password@orcl fi ...

  5. EL&jsp

    JSP 2.0(java server pages): EL 表达式 JSP九大内置对象及作用范围 JSP Directive JSP Action EL表达式: EL 算法(Arithmetic)表 ...

  6. mysql创建定时器(event),查看定时器,打开定时器,设置定时器时间

    由于项目需要创建定时器(evevt),所以就百度了一下,发现基本都是来源于一个模板,有些功能还不全,现在自己总结一下. 注:mysql版本是从5.1开始才支持event的.如果你的版本低于5.1就先升 ...

  7. Enum学习中的compareTo方法分析

    今天看工厂模式的时候里面用了枚举定义各种可能的实例类型,就看了一下枚举,发现里面有一个compareTo(E o)方法 通过Object的getClass()方法比较两个两个比校对象类型是否一致,如果 ...

  8. ssh结合tar命令把远程文件拉回来或推过去(实现数据无落地推送)

    登录22后tar 压缩/var/log目录输出到标准输入通过管道传到本地22_log.tar.gz文件 ssh 192.168.0.22 "cd /var ;tar -zcvf - log& ...

  9. 查询sql执行速度

    with QS as(      select cp.objtype as object_type            ,db_name(st.dbid)as [database]          ...

  10. pycharm ideavimrc设置备忘

    文件存放位置 windows下 C:\Users\你的用户名\.ideavimrc 注:如果要映射pycharm 中的一些命令可以 在pycharm 中 edit->Macros->Sta ...