如何在 onSuccess 领域回调中完成 activity?

How to finish an activity inside onSuccess Realm callback?

我正在尝试在 Realm 事务的 onSuccess() 回调中调用 finish() 方法。 MainActivity 打开另一个 activity 供用户输入数据并创建一个对象,单击按钮后,我的代码如下所示:

addButton.setOnClickListener {
  val newObject = MyObject()
  newObject.name = "Name"
  
  realmThread.executeTransactionAsync(
    { transaction -> transaction.insert(newObject) },
    { _ -> finish() }
  )

}

交易完成,但是activity没有关闭。

*创建一个在 AsyncTasc 响应后调用的方法,并在其中使用 finish()。 我猜它对你不起作用,因为你在一个单独的线程中调用它 *

所以解决方案是指定我正在执行 onSuccess 回调:

realmThread.executeTransactionAsync(
  { transaction -> 
    transaction.insert(newObject)
  },
  Realm.Transaction.OnSuccess {
    finish()
  }
)