我和Kovenant有一个奇怪的问题。要么我不明白的东西o有一些bug。以下代码是Android的简单task { } successUi { }
。然而,succesUi
生成android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
,在检查主题名称时是:kovenant-callback-2
,而不是主帖iv
是ImageView
。
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())
}
}
答案 0 :(得分:2)
您必须在MainActivity上拨打startKovenant()
(和stopKovenant()
)。这将通过保持线程活动并将适当的Dispatchers附加到UI回调来设置Kovenant与Android一起使用。
类似于:
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 configuration documentation