Обновить компонуемый jetpcak при изменении члена статического класса

У меня есть соединение Paho MQTT с обратным вызовом, обновляющим объект, и мне нужно обновить совместное использование. Я вижу в Logcat, что я получаю информацию, но составное не обновляется. Я подозреваю, что проблема в том, что я использую статический объект, и он не изменяется. Какова практика по этому сценарию? Я не реализовал ViewModel. Это можно было бы сделать с помощью таймера, но я думаю, что это не элегантное решение.

фрагмент:

      
object MyCallBack : MqttCallback {
    public var message = ""

    override fun messageArrived(topic: String?, message: MqttMessage?) {
        this.message = message.toString()
        Log.e(ContentValues.TAG,"mqtt Arrived: $message")
    }
......
}

и компонуемая функция, используемая для отображения информации:

      @Composable
fun ShowMessage() {
    var myCallBack = MyCallBack //here i can access the updated information
    var message by remember {
        mutableStateOf(myCallBack.message)

    Text("Changed ${myCallBack.message}", color = Color.White)
    }
}

Спасибо!

я пытался использовать mutableStateOf(), но он не требовал композиции, я думаю, что это невозможно наблюдать.

0 ответов

Другие вопросы по тегам