Все компоненты подключены с использованием общего объекта с переменными и механизмами синхронизации потоков, таких как некоторые случаи, что я вижу все дни, все в некоторых случаях (однажды я вижу все дни). В возврат объекта null.
У меня есть таймер , который опробовал поля объекта, разбирает данные и обновляет TextView (в потоке пользовательского интерфейса, конечно).
Код: Выделить всё
StateController.ktКод: Выделить всё
object StateController {
var params : DeviceParameters = DeviceParameters()
var hardwareCompat : MyHardwareCompat? = null
var interfaceApp : InterfaceAppCompat? = null
...
}
< /code>
DeviceParameters.ktКод: Выделить всё
class DeviceParameters {
var terminalSerial : String = "unknown"
set(value) {
if (field != value) {
field = value
informDiagnosticUpdate()
}
}
var controllerSerial : String = "unknown"
set(value) {
if (field != value) {
field = value
informDiagnosticUpdate()
}
}
val printableSerial : String
get() {
var serial = controllerSerial
if (serial == "" || serial == "unknown") {
serial = terminalSerial
}
return serial
}
...
}
< /code>
Activity:
// Context: Called from onInit()
StateController.terminalSerial = "SomeText1"
StateController.controllerSerial = "SomeText2"
Timer().schedule(delay = 100, period = 1000) {
runOnUiThread {
...
findViewById(R.id.serial)?.text = StateController.printableSerial
...
}
}
< /code>
Note: Timer()Подробнее здесь: https://stackoverflow.com/questions/795 ... tain-nulls
Мобильная версия