关于android MqttClient消息推送客户端锁屏状态,无法发送心跳包解决方案
1、客户端锁屏状态,无法发送心跳包
解决方案:使用电源锁
客户端:MqttService
/** * 设备电源锁。 */ private PowerManager.WakeLock mWakeLock;
/** * 申请设备电源锁 */ private final void acquireWakeLock() { if (mWakeLock == null) { PowerManager pm = (PowerManager) this.getSystemService(Context.POWER_SERVICE); mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, this.getPackageName()); } if (mWakeLock != null) { mWakeLock.acquire(); } } /** * 释放设备电源锁 */ private final void releaseWakeLock() { if (mWakeLock != null) { mWakeLock.release(); mWakeLock = null; } }
@Override public int onStartCommand(Intent intent, int flags, int startId) {//申请电源锁acquireWakeLock();//创建mqtt连接if(mqttClient != null && mqttClient.isConnected()) {} else {util = CommonUtil.getInstance(MqttService.this);CLIENT_ID = "uniware" + util.getInt("USER_ID", -1);notiId = new Random().nextInt(100000);TOPICS = new String[]{CLIENT_ID};// 创建MqttClient对象try {mqttClient = new MqttClient(HandleAddress.CONNECTION_STRING);mqttClient.registerAdvancedHandler(new AdvancedCallbackHandler());// 注册接收消息方法} catch (MqttException e) {e.printStackTrace();}new Thread(conn).start();}return super.onStartCommand(intent, flags, startId); }
@Override public void onDestroy() {//关闭mqtt连接conn.interrupt();try {mqttClient.unsubscribe(TOPICS);} catch (MqttNotConnectedException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalArgumentException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (MqttException e) {// TODO Auto-generated catch blocke.printStackTrace();}try {mqttClient.disconnect();} catch (MqttPersistenceException e) {// TODO Auto-generated catch blocke.printStackTrace();}//释放电源锁releaseWakeLock(); super.onDestroy(); Log.d(TAG, "onDestroy() executed"); }
关于android MqttClient消息推送客户端锁屏状态,无法发送心跳包解决方案相关推荐
- android 消息推送开发 锁屏显示_MIUI 第452周发布公告及更新日志(MIUI开发版公测)...
MIUI 开发版20.5.7 14:30发布,部分机型延迟发布 1. Redmi K20 Pro.小米9 Pro 5G.小米CC9 Pro.Redmi K30.Redmi K20.Redmi K30 ...
- Android端消息推送总结:实现原理、心跳保活、遇到的问题等
前言 最近研究Android推送的实现, 研究了两天一夜, 有了一点收获, 写下来既为了分享, 也为了吐槽. 需要说明的是有些东西偏底层硬件和通信行业, 我对这些一窍不通, 只能说说自己的理解. 为什 ...
- 2015最新最全 Android 谷歌消息推送GCM 详细使用教程
因为项目是非大陆的手机项目,所以当要使用到消息推送的时候,百度了一下,国内的消息方案可以是: 1.百度云推送.也确实很快就可以搭建客户端和服务端,加载他的sdk,大概花了半个小时,就可以在手机端收到推 ...
- Windows 10推送的锁屏壁纸保存方法
工作中使用的系统为Windows 10,锁屏时显示的壁纸很漂亮,并且每天都会更新,有几张特别喜欢,于是就想这些壁纸到底保存在哪里呢?经过一番摸索,终于搞明白了,简单记录一下. 壁纸保存在下面路径: C ...
- 基于openfire+smack的Android、消息推送服务
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使 ...
- android热门消息推送横向测评![转]
关于这个话题,已经不是什么新鲜事了.对于大多数中小型公司一般都是选择第三方的服务来实现.但是现在已经有很多提供推送服务的公司和产品,如何选择一个适合自己项目的服务呢?它们之间都有什么差别?在此为大家做 ...
- Android 生态消息推送平台介绍
一.手机厂商平台 华为消息推送服务 华为推送(Push)是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,使应用可以将最新信息及时通知用户,从而构筑良好的用户关系,提升用户的感知和活跃 ...
- Android之消息推送实现
在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相 ...
- Android App消息推送 实现原理
https://www.jianshu.com/p/b61a49e0279f 1.消息推送的实质 实际上,是当服务器有新消息需推送给用户时,先发送给应用App,应用App再发送给用户 2. 作用 产品 ...
最新文章
- mysql-sql优化--笔记
- 前端开发周边(js版页内锚点跳转方法)
- 实战SSM_O2O商铺_19【商铺编辑】Controller层开发
- java2d简介_AWT_Java2D简介
- Intent跳转传list集合
- javafx 图标_JavaFX技巧32:需要图标吗? 使用Ikonli!
- Jenkins在AWS上(第1部分)
- 30 WM配置-策略-出库策略3-定义后进先出策略L(LIFO)
- wpf的控件style
- 洛谷 1429 平面最近点对(加强版) 快排 非点分治或kdtree
- 递归法应用背包问题C语言课程设计,数据结构课程设计背包问题.doc
- Tomcat虚拟主机配置示例
- 罗大佑的童年用计算机咋弹,罗大佑《童年》吉他弹奏教学-520吉他网
- 新房装修流程详细步骤有哪些? 新房装修流程注意事项有哪些?
- vSphere 6.5配置使用vMotion高级特性
- ubuntu上python使用opencv调用usb摄像头无故掉线以后重连摄像头。
- majicMIX realistic 模型
- AR项目总结之业务架构图
- 商品结算页面html代码,前端开发jQuery购物车结算页面代码
- Linux IPC总结(全)