【发布时间】:2017-08-28 10:44:00
【问题描述】:
我的 Activity 中有一个 AsyncTask 作为内部类,它是用 Kotlin 编写的。现在,我尝试使用 this@MyActivity 从我的 AsyncTask 的 onPostExecute 访问 Activity,但 Android Studio 将其报告为未解决的引用错误。但这是在线建议从 InnerClass 引用 OuterClass 的最常用方法。代码如下:
class MyActivity : AbstractAppPauseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onResume() {
super.onResume()
}
class MyTask(private var mContext: Context?, val pbMigrating: ProgressBar) :AsyncTask<Void, Int, Void>() {
private var size: Long = 0
override fun onPreExecute() {
super.onPreExecute()
...
}
override fun doInBackground(vararg params: Void?): Void? {
...
return null
}
override fun onProgressUpdate(vararg values: Int?) {
super.onProgressUpdate(*values)
pbMigrating.progress = values[0] as Int
}
override fun onPostExecute(result: Void?) {
super.onPostExecute(result)
this@MyActivity //<- Cannot Resolve error here
}
}
}
【问题讨论】:
标签: android android-asynctask kotlin