【发布时间】:2019-03-20 22:50:50
【问题描述】:
我有一个带有计算的 Activity,为了简单起见,我以 MVP 模式提取了该 Activity 的功能:
- 计算活动
- CalcPresenter
早些时候,我在一个 CalcActivity 中完成了所有计算。我在那次活动中做了一些计算:
private fun Calculator.doCalculation() {
this.complexCalcualtion(intArrayOf(1, 2, 3, 4, 5, 6), object : CalculationCallback {
override fun onSuccess(result: String) {
runOnUiThread {
result_textview.text = result
}
}
})
}
我猜这整个doCalculation() 是在另一个线程上完成的。我将此方法移至演示者,并希望将结果转发给查看:
private fun Calculator.doCalculation() {
this.complexCalcualtion(intArrayOf(1, 2, 3, 4, 5, 6), object : CalculationCallback {
override fun onSuccess(result: String) {
view?.showResult(result)
}
})
}
但是看?永远不会被调用,因为它在 CalculationCallback.onSuccess() 中为空,我在那里看不到 view。
我也无法访问那里的活动,所以我不能在那里runOnUiThread..
如何将结果转发回视图/活动?
【问题讨论】:
-
我想你自己回答,你的观点是空的,你应该找出原因。你之前在构造函数中初始化它还是什么?
标签: android android-fragments android-activity kotlin android-fragmentactivity