寻找某个回调的非常基本的术语

Look for the very basic term for a certain callback

我来自嵌入式世界,对 Kotlin 还很陌生。我知道我可以在我的 class 中继承和使用一些机制,但我不知道 Android.

的这个机制的确切名称

我要找的是:

  1. 我有我的 Activity,这个实例化了我的 CustomClass
  2. 我的 CustomClass 执行一些后台任务,例如处理 BLE 异步通信
  3. CustomClass 不知道什么时候会收到一些数据包。
  4. 一旦收到包,CusomClass应该回调Activity并通过这个机制给出数据。

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

P.s.: 抱歉,我看了很多,但我什至不知道要开始搜索的名字。

您可以使用 LiveData 来达到这个目的。本质上它是一个可观察的数据持有者,所以当你改变它的数据时,它的所有观察者都会得到通知。 这使您能够编写反应式代码并减少紧密耦合的逻辑。它还具有生命周期意识,因此您的 activity 只有在其处于活动状态时才会收到通知。

一般的想法是执行以下操作

在你的 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
    })
}

您也可以使用event bus or braodcast receiver or 来达到您的目的。但是推荐其他答案(liva data, viewmodel)中给出的思路。