我如何使用 Mqtt 编写自定义变量更改侦听器
How Can I Code Custom Variable Change Listener With Mqtt
Mqtt客户端每2秒发送一次数据给我。我可以获得没有问题的数据。我有 Global Class,当我获取数据时,我设置了 class 的变量。我想在我的另一个 class 上使用这些数据,所以我使用该方法访问数据:
handler = new Handler();
runnable = new RefreshData(handler, ...);
handler.postDelayed(runnable, 2000);
public RefreshData(...) {
...
}
private class RefreshData implements Runnable {
@Override
public void run() {
GlobalClass globalClass = (GlobalClass) getApplicationContext();
this.lat = globalClass.getLat();
this.lng = globalClass.getLng();
... }
}
关于如何获取数据的代码:
public class MqttMessageService extends Service {
private MqttAndroidClient mqttAndroidClient;
public MqttMessageService() {
}
@Override
public void onCreate() {
mqttAndroidClient.setCallback(new MqttCallbackExtended() {
@Override
public void messageArrived(String s, MqttMessage mqttMessage) throws Exception {
GlobalClass globalClass = (GlobalClass) getApplicationContext();
globalClass.setMessage(mqttMessage.toString());
}
...}
所以我想为 mqttMessage 编写一个变量更改侦听器代码,因为该方法正在 -RefreshData- 工作,但没有用。我没有编码和使用任何自定义侦听器,而且我对此没有太多经验。我该如何编码?
我找到了解决方案,我创建了全局 class 并将侦听器设置为 class。也许这个答案可以帮助到其他人。
Mqtt客户端每2秒发送一次数据给我。我可以获得没有问题的数据。我有 Global Class,当我获取数据时,我设置了 class 的变量。我想在我的另一个 class 上使用这些数据,所以我使用该方法访问数据:
handler = new Handler();
runnable = new RefreshData(handler, ...);
handler.postDelayed(runnable, 2000);
public RefreshData(...) {
...
}
private class RefreshData implements Runnable {
@Override
public void run() {
GlobalClass globalClass = (GlobalClass) getApplicationContext();
this.lat = globalClass.getLat();
this.lng = globalClass.getLng();
... }
}
关于如何获取数据的代码:
public class MqttMessageService extends Service {
private MqttAndroidClient mqttAndroidClient;
public MqttMessageService() {
}
@Override
public void onCreate() {
mqttAndroidClient.setCallback(new MqttCallbackExtended() {
@Override
public void messageArrived(String s, MqttMessage mqttMessage) throws Exception {
GlobalClass globalClass = (GlobalClass) getApplicationContext();
globalClass.setMessage(mqttMessage.toString());
}
...}
所以我想为 mqttMessage 编写一个变量更改侦听器代码,因为该方法正在 -RefreshData- 工作,但没有用。我没有编码和使用任何自定义侦听器,而且我对此没有太多经验。我该如何编码?
我找到了解决方案,我创建了全局 class 并将侦听器设置为 class。也许这个答案可以帮助到其他人。