Kotlin kovenant succesUi在错误的线程?

我和Kovenant有一个奇怪的问题。 要么我不明白的东西有一些错误。 以下代码是Android的一个简单task { } successUi { } 。 但succesUi生成android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. ,当cheking线程名称是: kovenant-callback-2 ,而不是主线程ivImageView

  val promesa1 = task { val nazwa = Thread.currentThread().name print(nazwa) } successUi { val nazwa = Thread.currentThread().name print(nazwa) try { iv!!.setImageBitmap(null) } catch (ex : Exception) { print("Mamy:"+ex.toString()) } } 

你必须在你的MainActivity上调用startKovenant() (和stopKovenant() )。 这将设置Kovenant与Android一起使用,保持线程活动并将适当的Dispatcher附加到UI回调。

所以像这样:

 public class MainActivity : ... { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(...) // Configure Kovenant with standard dispatchers startKovenant() } ... override fun onDestroy() { stopKovenant() super.onDestroy() } } 

有关此主题的更多信息,请参阅Android配置文档