Android:从 TimerTask 访问 activity 上下文

Android: Access activity context from TimerTask

是否可以从 TimerTask 对象访问 activity 上下文?到目前为止,这是我所拥有的,但是我在尝试从 TimerTask 对象访问 this(Activity context) 时遇到错误。以下代码包含在 Activity:

    Timer().schedule(object : TimerTask() {
        override fun run() {
            runOnUiThread(object : Runnable {
                override fun run() {
                    startActivity(Intent(this, HomeScreenActivity::class.java))
                    finish()
                }
            })
        }
    }, 2)

如您所见,我在

上尝试了 运行 任务

runOnUiThread(...)

但我仍然无法访问 Activity 上下文。任何帮助将不胜感激!

this 指的是最直接的封闭函数的 this,在本例中是您的 Runnable。使用 this@MyActivity 指定外部 activity class,其中 MyActivity 是 class.

的名称

有必要使用 runOnUiThread 并不是因为您尝试过它,而是因为您无法从后台线程启动 activity。

顺便说一句,Kotlin 提供了一些扩展函数和 SAM 转换,可以使您的代码更具可读性:

Timer().schedule(2000L) {
    runOnUiThread {
        startActivity(Intent(this@MyActivity, HomeScreenActivity::class.java))
        finish()
    }
}