0
使用主构造函数参数我在科特林实施AsyncTask
一个子类:子类的AsyncTask的 - 未能在onPostExecute
class SignUpTask(responseHandler: SignUpTaskResponseHandler): AsyncTask<Agent, Void, Boolean>() {
override fun doInBackground(vararg params: Agent?): Boolean {
// Some awesome code
return true
}
override fun onPostExecute(result: Boolean?) {
result?.let {
if (it) {
responseHandler.agentCreationSucceeded()
} else {
// agent creation failed
}
}
}
}
问题是 - 我得到以下错误在这行responseHandler.agentCreationSucceeded()
:
未解决的参考:ResponseHandler所
我可以把它通过明确宣布合作一个属性,分配给它的参数的构造函数传递参数:
class SignUpTask(responseHandler: SignUpTaskResponseHandler): AsyncTask<Agent, Void, Boolean>() {
val internalResponseHandler = responseHandler // explicit assignment to make it work inside onPostExecute
override fun doInBackground(vararg params: Agent?): Boolean {
// Some awesome code
return true
}
override fun onPostExecute(result: Boolean?) {
result?.let {
if (it) {
// Works only after explicit assignment?
internalResponseHandler.agentCreationSucceeded()
} else {
// agent creation failed
}
}
}
}
为什么这开销还是我失去了在这里什么任何想法?
在您的代码 –
中没有val名为internalResponseHandler的固定值。谢谢! :) – tompee
很酷..谢谢:) – Devarshi