我如何使用视图模型,用sqlite和广播接收器来更新UI?

我有一个用于测试连接的应用程序,它有一个20分钟的警报,并且必须使用唯一代码联系服务器,并且服务器使用相同的代码发送一个短信来确认。 我有所有的组件工作,但我不知道如何得到唯一的代码来自动更新在用户界面。 警报把每个请求写入一个sqlite数据库,我希望用observable自动更新UI。

如果这有什么不同,我的项目在Kotlin。

基本上,我只是没有搞清楚如何“观察”的SQL数据库的变化,或如何让广播接收机和活动使用相同的可观察

这个答案还没有完成:

为了做我想做的事情,到目前为止,我已经实现了一个共享的首选项侦听器,并使用它来在广播接收器和UI之间中继数据。 我也用新的库实现了一个可观察的对象,但是我需要在一个较旧的设备上运行这个应用程序,所以观察结果不起作用。

private val listener = SharedPreferences.OnSharedPreferenceChangeListener { prefs, key -> val value = prefs.getString(key, "") when(key) { "sms" -> smsStatus.text = value } } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_smschecker) //setSupportActionBar(toolbar) getSharedPreferences("SMS_CHECKER", MODE_PRIVATE).registerOnSharedPreferenceChangeListener(listener) } 

那么在广播接收机中:

 val editor = context.getSharedPreferences("SMS_CHECKER", Context.MODE_PRIVATE).edit() editor.putString("sms", DateFormat.getDateTimeInstance().format(Date())) editor.apply() 

仍然在进行sqlite监控。