Android 同一个BroadcastReceiver在两个程序里执行
来源:互联网 发布:dota2比赛数据未找到 编辑:程序博客网 时间:2024/05/20 23:05
在项目中,需要将同一段程序变为两个app,并且可以安装在同一个手机里,一般而言两个相同的程序安装在手机里,会被互相替代,但是我们改一下gradle文件中的applicationId(如图所示),使两个程序该值不同即可同时安装在手机里。
在程序中,有socket心跳连接服务,在心跳连接断开时会发送广播提醒,从而弹框提醒用户连接已断开。经改动Id后的两个app,在测试时发现,弹框总会弹出两次,这种情况只有在两个app同时在手机中运行时才会出现(一个在前台运行,一个在后台),在打出Log后发现,原因在于广播发送了两次,由于两个app是由同一代码执行生成的,因此广播的配置相同,如下段代码即为广播配置:
private void registerReceiver() { IntentFilter intentFilter = new IntentFilter(); intentFilter.addAction(BackService.HEART_BEAT_ACTION); intentFilter.addAction(BackService.MESSAGE_ACTION); getApplicationContext().registerReceiver(mReceiver, intentFilter); }两个app同时在手机中运行时,执行一次发送广播的代码,就会同时触发两个程序的广播,由于一个在后台,程序的执行就会结果就会全部体现在前台的程序里面,导致弹框出现两次,解决方法为把其中一个广播的配置改动,使两个程序的广播配置不同即可,经测后发现该问题已经消失。
0 0
- Android 同一个BroadcastReceiver在两个程序里执行
- 在同一个进程空间运行两个程序
- 在同一个进程空间运行两个程序
- 在同一个进程空间运行两个程序
- 在同一个进程空间运行两个程序
- 在同一个进程空间运行两个程序
- 如何用js判断两个文本框里的日期是否在同一个月里???
- Android:两个Fragment在同一个Framelayout上切换显示
- 生活在同一个世界里
- 两个工程在同一个tomcat里运行遇到的log4j配置问题
- 如何在表单的WebQuerySave里执行两个代理
- android 在ActivityGroup里执行跳转
- 旧文重贴,悼念我的第一个电子邮箱:在同一个进程空间运行两个程序
- 旧文重贴,悼念我的第一个电子邮箱:在同一个进程空间运行两个程序
- VC防止同一个程序运行两个实例
- C#如何在程序里计划任务,自动执行
- JAVA程序在windows计划任务里执行的问题
- JAVA程序在windows计划任务里执行的问题
- faster rcnn svd compress
- 安卓实战-计算器
- 制作电子相册
- 单行函数
- POJ 2975 Nim 题解
- Android 同一个BroadcastReceiver在两个程序里执行
- react-native之flex布局总结
- oracle中三大类型与隐式数据类型转换
- caffe2 在树莓派raspberry Pi 3b平台应用(一 源码编译注意事项)
- 并查集总结
- caffe2 介绍
- Ubuntu系统重启后/etc/resolv.conf内容丢失
- win10 禁用更新
- SQL&&SQLPLUS语句的特点,单双引号出现的位置