MQTT Paho之Android service源码分析

官网:

https://www.eclipse.org/paho/clients/android/

http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/

https://www.eclipse.org/paho/clients/android/sample/

libs下载链接:

mqtt java 客户端开发涉及到两个lib,分别是

1、org.eclipse.paho.client.mqttv3-1.0.2.jar

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.client.mqttv3/

2、org.eclipse.paho.android.service-1.0.2.jar

https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.android.service/

普通的java web工程和Android开发不同。java web只需要使用第1个jar包,而Android开发则两个都要用到,因为Android需要启动后台Service组件来完成消息的发布和订阅。本文章重点讲诉的是android service,即org.eclipse.paho.android.service-1.0.2.jar。

从官网http://git.eclipse.org/c/paho/org.eclipse.paho.mqtt.java.git/可以获取到源码包org.eclipse.paho.mqtt.java-1.0.2.zip。

解压缩,里面org.eclipse.paho.mqtt.java-1.0.2\org.eclipse.paho.android.service\org.eclipse.paho.android.service就是android service的源码。org.eclipse.paho.android.service-1.0.2.jar就是通过此源码导出生成的。

一、MqttAndroidClient.java

1、Service组件

工程AndroidManifest.xml文件有Service的定义。

第390行,函数connect(),有startService和bindService的执行,启动和绑定Service与外部的Activity通信。

2、BroadcastReceiver组件

第70行,public class MqttAndroidClient extends BroadcastReceiver和第1251行的函数OnReceive(Context context, Intent intent)是配套的,用于监听广播消息。

第1435行,函数messageArrivedAction()里面有callback.messageArrived(),可以把接收来自Service的数据回调发送到用户界面的Activity里。

第442行的registerReceiver()和第1599行的unregisterReceiver()分别是注册和注销Broadcast。

IntentFilter filter = new IntentFilter();

filter.addAction(MqttServiceConstants.CALLBACK_TO_ACTIVITY);

二、MqttConnection.java

第755行,重写了MqttCallback的函数connectionLost();

第803行,重写了MqttCallback的函数deliveryComplete();

第755行,重写了MqttCallback的函数messageArrived();

该源文件出现了许多回调函数service.callbackToActivity();

三、MqttService.java

第267行,函数callbackToActivity();里面有发送广播sendBroadcast()的实现。

Intent callbackIntent = new Intent(MqttServiceConstants.CALLBACK_TO_ACTIVITY);

    原文作者:Android源码分析
    原文地址: https://blog.csdn.net/libaineu2004/article/details/48547801
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞