Broadcast总结

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

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影响‘
时间: 2024-10-06 20:37:05

Broadcast总结的相关文章

android Broadcast 总结

1, 生命周期 在android官方文档中,推荐我们在onResume中进行 registerReceiver, 在onPause中进行unRegisterReceiver. 他们给出的理由是: If registering a receiver in your Activity.onResume() implementation, you should unregister it in Activity.onPause(). (You won't receive intents when pa

通过$broadcast或$emit在子级和父级controller之间进行值传递

1 通过$broadcast或$emit在controller之间进行值传递,不过这些controller必须是子级或者父级关系, 2 $emit只能向父级parent controller传递事件event与数据data,$broadcast只能向子级child controller传递event与data,$on用于接收event与data. 3 <script> 4 var myapp=angular.module('myapp',[]); 5 myapp.controller('Sel

vue2.0弃用$dispatch和$broadcast

$dispatch 和 $broadcast 已经被弃用.请使用更多简明清晰的组件间通信和更好的状态管理方案,如:Vuex. 因为基于组件树结构的事件流方式实在是让人难以理解,并且在组件结构扩展的过程中会变得越来越脆弱.这种事件方式确实不太好,我们也不希望在以后让开发者们太痛苦.并且$dispatch 和 $broadcast 也没有解决兄弟组件间的通信问题. 对于$dispatch 和 $broadcast最简单的升级方式就是:通过使用事件中心,允许组件自由交流,无论组件处于组件树的哪一层.由

angularjs的$on、$emit、$broadcast

如何在作用域之间通信呢? 1.创建一个单例服务,然后通过这个服务处理所有子作用域的通信. 2.通过作用域中的事件处理通信.但是这种方法有一些限制:例如,你并不能广泛的将事件传播到所有监控的作用域中.你必须选择是否与父级作用域或者子作用域通信. $on.$emit和$broadcast使得event.data在controller之间的传递变的简单.$emit:子传父 传递event与data$broadcast:父传子 child controller传递event与data$on:监听或接收数

Angularjs中的事件广播-浅谈$broadcast,$emit,$on

Angularjs中不同作用域之间可以通过组合使用$broadcast,$emit,$on的事件广播机制来进行通信 介绍: $broadcast的作用是将事件从父级作用域传播至子级作用域,包括自己.格式如下:$broadcast(eventName,args) $emit的作用是将事件从子级作用域传播至父级作用域,包括自己,直至根作用域.格式如下:$emit(eventName,args) $on用于在作用域中监控从子级或父级作用域中传播的事件以及相应的数据.格式如下:$on(event,dat

《第一行代码:Android》读书笔记——第5章 Broadcast

(一)广播机制简介 1.Android广播的分类: 如图所示: 2.发送广播:使用Intent:接收广播:Broadcast Receiver. (二)接收系统广播 1.动态注册监听网络变化 示例程序: (1)MainActivity(注:以下代码中的ToastUtil是自己简单封装的Toast显示功能的类): 1 package com.example.broadcasttest; 2 3 import android.app.Activity; 4 import android.conten

两个应用之间传递广播的规则 Broadcast

sendBroadcast(new Intent(Config.ACTION_PRINT),”com.qf.permission.print”);先判断应用有没有对应的权限 再去判断有没有对应的action两者都对应了才能进行接收      一个应用声明了权限 另一个应用使用了该权限并且action(频道相同)则可以接收广播 应用4发广播应用4里边对应频道的接受者都可以接受   应用5使用了应用4声明的权限并且接受者的action(频道)一直因此也可以接受4的广播   5发广播4也能接受 除非自

Android系统中的广播(Broadcast)机制简要介绍和学习计划

在Android系统中,广播(Broadcast)是在组件之间传播数据(Intent)的一种机制:这些组件甚至是可以位于不同的进程中,这样它就像Binder机制一样,起到进程间通信的作用:本文通过一个简单的例子来学习Android系统的广播机制,为后续分析广播机制的源代码作准备. 在Android系统中,为什么需要广播机制呢?广播机制,本质上它就是一种组件间的通信方式,如果是两个组件位于不同的进程当中,那么可以用Binder机制来实现,如果两个组件是在同一个进程中,那么它们之间可以用来通信的方式

【转】Android开发之如何保证Service不被杀掉(broadcast+system/app)

Service简介 1.Service 每个Service必须在manifest中 通过<service>来声明. 可以通过contect.startservice和contect.bindserverice来启动. 和其他的应用组件一样,运行在进程的主线程中.这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现(或者用系统提供的IntentService,它继承了Service,它处理数据是用自身新开的线程).[当然你也可以在新的线程中startService,这样Se

品茗论道说广播(Broadcast内部机制讲解)(上)

侯 亮 1 概述 我们在编写Android程序时,常常会用到广播(Broadcast)机制.从易用性的角度来说,使用广播是非常简单的.不过,这个不是本文关心的重点,我们希望探索得再深入一点儿.我想,许多人也不想仅仅停留在使用广播的阶段,而是希望了解一些广播机制的内部机理.如果是这样的话,请容我斟一杯红茶,慢慢道来. 简单地说,Android广播机制的主要工作是为了实现一处发生事情,多处得到通知的效果.这种通知工作常常要牵涉跨进程通讯,所以需要由AMS(Activity Manager Servi