查找某个回调的最基本术语



我来自嵌入式世界,对Kotlin很陌生。我知道有一些机制我可以在我的类中继承和使用,但我不知道这个机制在Android上的确切名称。

我要找的是:

  1. 我有我的Activity,这个实例化了我的CustomClass
  2. 我的CustomClass执行一些后台任务,如处理BLE异步通信
  3. CustomClass不知道何时接收到某些数据包。
  4. 一旦收到包,customclass应该回调Activity并通过此机制提供数据。

执行这些回调的最佳选择是什么?

注。我很抱歉,我找了很多地方,但我甚至不知道名字。

您可以使用LiveData来实现此目的。本质上它是一个可观察对象数据持有者,所以当你改变它的数据时,它所有的观察者都会得到通知。这使您能够编写响应式代码并减少紧密耦合的逻辑。它也是生命周期感知的,所以你的活动只有在活动时才会得到通知。

一般的想法是按照

在你的CustomClass声明一个LiveData对象

class CustomClass{
// Declare a LiveData object, use any type you want String, Int etc
val myData: MutableLiveData<String> = MutableLiveData("")
private fun onBleNotification(notification: String){
// post to live data, this will trigger all the observers
myData.postValue(notification)
}
...
}

Activity中,观察LiveData对象

onCreate(savedInstanceState: Bundle?){
...
customClass.myData.observe(this, androidx.lifecycle.Observer{
//Do anything with received command, update UI etc
})
}

您也可以使用事件总线或广播接收器或接口来实现您的目的。但建议使用其他答案(liva data, viewmodel)中的想法。

相关内容

  • 没有找到相关文章

最新更新