技术标签: java android studio
这是因为你同时打开了流量和WiFi,他就会发出两次广播。
标准广播未能弹出消息:
Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
sendBroadcast(intent);
上述已经失效了。
修改:
Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
intent.setPackage("com.example.broadcasttest");
sendBroadcast(intent);
原因:
若App的TargetSDK达到了26, 我们正常静态注册的广播就没有用了。能用的仅有以下豁免的Broadcast, 包括我们自己正常发广播,如果不指定包名, 静态注册的也是收不到的。PS:动态注册是没有影响的。
BroadcastTest2接收不到标准广播,未能弹出"received in AnotherBroadcastReceiver"
解决办法:
在发送广播中的那个MainActivity中修改
Intent intent=new Intent("com.example.broadcasttest.MY_BROADCAST");
intent.setPackage("com.example.broadcasttest");
sendBroadcast(intent);
Intent intent2=new Intent("com.example.broadcasttest.MY_BROADCAST");
intent2.setPackage("com.example.broadcasttest2");
sendBroadcast(intent2);
原因:
依然是因为静态注册未指定包名;
静态注册的广播不知道能不能截断,但是似乎说是失效了,只能截断动态注册广播。此时我们就会换成动态注册,以后也尽量使用动态注册。也不需要带上setPackage就能发送了,简单多了。
private IntentFilter intentFilter;
private MyBroadcastReceiver myBroadcastReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
intentFilter = new IntentFilter();
intentFilter.addAction("com.example.broadcasttest.MY_BROADCAST");
intentFilter.setPriority(100);
myBroadcastReceiver = new MyBroadcastReceiver();
registerReceiver(myBroadcastReceiver,intentFilter);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.example.broadcasttest.MY_BROADCAST");
// intent.setPackage("com.example.mybroadcastreceiver");
sendOrderedBroadcast(intent,null);
// Intent intent2 = new Intent("com.example.broadcasttest.MY_BROADCAST");
// intent2.setPackage("com.example.broadcasttest2");
// sendOrderedBroadcast(intent2,null);
}
});
intentFilter.setPriority(100);
设置优先级,优先级高的先播出。
如果需要截断,就是不向下继续传递广播,就可以在该广播中写如:
abortBroadcast();
以上我将学习《第一行代码》(第二版)广播因代码失效改进的问题。
本文章借鉴如下博客:
这个是原因,但是其中的代码我没有成功实现。
(5条消息) 《第一行代码2》的5.3.1节,发送标准广播后没有弹出提示消息_qq_42332046的博客-程序员宅基地
以下是成功实现的代码原博客:
文章浏览阅读9.2k次,点赞13次,收藏37次。导航我的博客,整理出来,方便导航~_邵奈一的技术博客导航
文章浏览阅读736次。大家都知道,因为历史原因,移动端上的点击事件会有 300ms 左右的延迟,Zepto 的 touch 模块解决的就是移动端点击延迟的问题,同时也提供了滑动的 swipe 事件。读 Zepto 源码系列文章已经放到了github上,欢迎star: reading-zepto源码版本本文阅读的源码为 zepto1.2.0GitBook《reading-zepto》实现的事件;['swipe', 'swi_zepto 引入touch模块
文章浏览阅读9.2k次。如何在linux中取得CPU温度呢?Centos系列yum install lm_sensorssensors-detectsensorsUbuntu系列(多了service module-init-tools start一步骤)apt-get install lm-sensorssensors-detectservice module-init-tools_msr怎么读取功耗
文章浏览阅读572次。题意: 给出墙的四面的边长,给出 所有 挖掘机的作业半径以及位置。 其中墙的几何中心就是坐标的原点。 需要特别注意的是:挖掘机覆盖的是“墙的边长上的中点” 最后要求的是给出可以覆盖这四个点最少的挖掘机的数目。 解题思路: 这个题目如果通过枚举就是2的n次方,其中n为挖掘机数目。因为每个挖掘机有两个状态:用 或者 不用。所以是指数级,会爆。 考虑另一种暴力求解方法: **实现考虑题目中_walls题解
文章浏览阅读4.3k次。1、方法一:_object转long
文章浏览阅读5.7k次,点赞4次,收藏5次。gson无法正常将时间戳转化成dategson将时间戳转化成date时,报错Failed to parse date ["1551950239757']: Invalid time zone indicator '3'解决办法添加一个long转date的解析器 @Test public void fun1(){ GsonBuilder builder = ne..._gson 时间戳转date
文章浏览阅读58次。I am developing an application for keyboard, but i am geting an issue.I want to restrict/block some special character from soft keyboard in EditText in android programmatically.So, Is there any way i ..._android 不可输入斜杠
文章浏览阅读343次。之前做项目都是使用别人搭建好的框架,今天自己来亲自搭一下基于maven的SSM框架。首先在pom.xml中添加需要的依赖: junit junit 3.8.1 test org.springframework spring-core ${spring.version} org.springframew_代码先写controller还是mapper
文章浏览阅读5.3k次。linux命令之rz介绍_linux rz
文章浏览阅读149次。今天在论坛看到一篇文章问到为什么SQL Server系统的SESSION ID是从1到50的,以前看过文章,这些Session是SQL Server为了运行系统活动比如((lazy writer, ghost record cleanup, DTC commit/abort),所以会保留50 Session ID给SQL Server使用,用户会话从51..._sql server 有多少个session
文章浏览阅读677次。利用 OpenCV 的 EAST 文本检测器定位图像中的文本区域。 提取每个文本 ROI,然后使用 OpenCV 和 Tesseract v4 进行文本识别。from imutils.object_detection import non_max_suppressionfrom PIL import Imageimport numpy as npimport pytesseractimport timeimport cv2from matplotlib import pyplot ..._(offsetx, offsety) = (x * 4.0, y * 4.0)
文章浏览阅读282次。一、思路使用Zookeeper实现负载均衡原理,服务器端将启动的服务注册到,zk注册中心上,采用临时节点。客户端从zk节点上获取最新服务节点信息,本地使用负载均衡算法,随机分配服务器。服务端启动的时候 会想注册中心Zookeeper中添加节点,(注意这个节点是临时的,目的是如果服务端关闭连接的时候,该结点会自动删除)客户端会查询注册中心里面的节点信息,拿到对应的地址和端口号,使..._通过zookeeper连接hive是如何负载均衡的