Обновить компонуемый 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(), но он не требовал композиции, я думаю, что это невозможно наблюдать.