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