AWSIotMqttClient 断开连接后应用程序不会停止

Application does not stop after AWSIotMqttClient disconnected

我正在使用 AWSIotMqttClient 订阅和发布主题。收到所有消息后,我想停止我的应用程序。但它的工作时间无限长。这是一个无限工作的简单代码,即使没有订阅:

 SampleUtil.KeyStorePasswordPair keyStorePasswordPair =
                SampleUtil.getKeyStorePasswordPair("certificate.pem", "privateKey.pem");

        AWSIotMqttClient client = new AWSIotMqttClient(
                "mqtt-broker.address",
                "deviceID",
                keyStorePasswordPair.keyStore,
                keyStorePasswordPair.keyPassword);

        client.connect();
        client.disconnect();

这是我的日志:

    > Task :Application.main()
Cert file:certificate.pem Private key: privateKey.pem
????. 20, 2019 11:56:45 AM com.amazonaws.services.iot.client.core.AwsIotConnection onConnectionSuccess
INFO: Connection successfully established
????. 20, 2019 11:56:45 AM com.amazonaws.services.iot.client.core.AbstractAwsIotClient onConnectionSuccess
INFO: Client connection active: 5dcd561596c30e0001e4b5d5

????. 20, 2019 11:56:53 AM com.amazonaws.services.iot.client.core.AwsIotConnection onConnectionClosed
INFO: Connection permanently closed
????. 20, 2019 11:56:53 AM com.amazonaws.services.iot.client.core.AbstractAwsIotClient onConnectionClosed
INFO: Client connection closed: 5dcd561596c30e0001e4b5d5

我可以使用 System.exit(0) 停止我的申请,但这对我来说是不受欢迎的。我希望在所有代码通过后,应用程序将停止。

找到 here。更新 aws-iot-device-sdk 到 1.3.4 版本

implementation 'com.amazonaws:aws-iot-device-sdk-java:1.3.4'
implementation 'com.amazonaws:aws-iot-device-sdk-java-samples:1.3.4'

解决了问题。