首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭postDelayed处理程序

关闭postDelayed处理程序
EN

Stack Overflow用户
提问于 2020-10-10 10:04:57
回答 1查看 47关注 0票数 0

我的应用程序从标题屏幕开始,然后当用户触摸标题屏幕时运行游戏活动。

我还希望它在3秒后启动,即使用户没有触摸屏幕。

计时器可以工作,但问题是,当他们在计时器动作之前触摸屏幕时,游戏就会出现,然后在计时器启动时再次出现。

这是Kotlin代码

代码语言:javascript
复制
class TitleActivity2 : AppCompatActivity() {

    var t = Handler()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_title2)

        titleVersionTextView.setText("V." + VERSION)

        t.postDelayed({
            val i = Intent(this, MainActivity::class.java)
            startActivity(i)
            finish()
        }, 3000.toLong())

        TitleActivityLayout.setOnClickListener() {
            // t.removeCallbacks(r) // //timer. .purge() .cancel() .isCanceled()
            val i = Intent(this, MainActivity::class.java)
            startActivity(i)
        }
    }
}
EN

回答 1

Stack Overflow用户

发布于 2020-10-10 11:00:48

首先,你必须创建一个Runnable变量:

代码语言:javascript
复制
val runnable = Runnable {
    val i = Intent(this, MainActivity::class.java)
    startActivity(i)
    finish()
}

然后:

代码语言:javascript
复制
t.postDelayed(runnable, 3000)

现在您可以将其删除,如下所示:

代码语言:javascript
复制
TitleActivityLayout.setOnClickListener() {
    t.removeCallbacks(runnable)
    val i = Intent(this, MainActivity::class.java)
    startActivity(i)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64289287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档