Java Android Paho客户端-启用网络后如何启用脱机缓冲和发送消息?

Java Android Paho客户端-启用网络后如何启用脱机缓冲和发送消息?,java,android,mqtt,paho,Java,Android,Mqtt,Paho,我正在使用Android Paho客户端库v1.1.0,QoS 2。 MQTT上发布/订阅的我的代码: mClient = new MqttAndroidClient(this, uri, clientId, new MqttDefaultFilePersistence()); MqttConnectOptions conOpt = new MqttConnectOptions(); conOpt.setMqttVersion(MqttConnectOptions.MQTT_VERSION

我正在使用Android Paho客户端库v1.1.0,QoS 2。 MQTT上发布/订阅的我的代码:

mClient = new MqttAndroidClient(this, uri, clientId, new   MqttDefaultFilePersistence());
MqttConnectOptions conOpt = new MqttConnectOptions();

conOpt.setMqttVersion(MqttConnectOptions.MQTT_VERSION_3_1);
conOpt.setCleanSession(true);
conOpt.setAutomaticReconnect(true);

mClient.setTraceEnabled(true);

mClient.setCallback(this);
mClient.setTraceCallback(this);

IMqttToken connectToken = mClient.connect(conOpt, null, this);
和脱机缓冲选项:

@Override
public void onSuccess(IMqttToken iMqttToken) {
    this.disconnectedBufferOptions = new DisconnectedBufferOptions();
    this.disconnectedBufferOptions.setBufferEnabled(true);

    mClient.setBufferOpts(disconnectedBufferOptions);

    subscribe(topic);
}
如果网络可用,但禁用并再次启用脱机消息,则将消息发布到主题不发送。 如何正确启用脱机缓冲选项并发送脱机消息?
其他信息:mClient.getBufferedMessageCount()在禁用网络并使用conOpt.setAutomaticReconnect(true)发布消息=0后,以及onSuccess of connect token中的以下代码片段为我解决了此问题

DisconnectedBufferOptions disconnectedBufferOptions = new DisconnectedBufferOptions();

disconnectedBufferOptions.setBufferEnabled(true);
disconnectedBufferOptions.setBufferSize(100);
disconnectedBufferOptions.setPersistBuffer(false);
disconnectedBufferOptions.setDeleteOldestMessages(false);

mClient.setBufferOpts(disconnectedBufferOptions);