Mqtt 客户端每 2 秒向我发送一次数据。我可以得到数据,没有问题。我有全局类,当我获取数据时,我设置类的变量。我想在我的其他类上使用这些数据,所以我使用该方法来访问数据:
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- 有效,但没有用。我没有编写代码并使用任何自定义侦听器,而且我对此没有太多经验。我该如何编码?
我找到了解决方案,我创建了全局类并设置了该类的侦听器。