相关疑难解决方法(0)

如何更改/重置处理程序延迟时间?

我正在使用postDelayed方法,Handler以便在一定时间后执行操作:

private static int time_to_wait = 2000;

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
  public void run() {
    // Make Action
  }
}, time_to_wait);
Run Code Online (Sandbox Code Playgroud)

现在在等待时间的中间我想要更改剩余毫秒的值,因为一些处理结果,让我们说它现在等待1000毫秒,我想让它开始从2000再次计数,所以,我设置time_to_wait值到2000年,但它没有计数,因为它只需要var值(2000),只是等待那个时间,无论将time_to_wait值更改为任何其他值.

android handler postdelayed

11
推荐指数
1
解决办法
9549
查看次数

未删除令牌类型 Int 或 Long 的 Android 处理程序回调 (*Kotlin)

我在 android 项目中执行了这段代码Kotlin,它将记录两条消息。如果我将其更改tokenChar,否则String它将仅打印一条消息,这是所需的行为。android 中的 java 项目中的相同用例可以正常工作。

    val handler = Handler()
    //val token1: Long = 1001L
    //val token2: Int = 121
    val token1: Long = 1001L
    val token2: Int = 1002

    handler.postAtTime(
        {
            Log.e("postAtTime 1", " printed 1 ")
            handler.removeCallbacksAndMessages(token2)
        },
        token1,
        SystemClock.uptimeMillis() + 2000
    )

    handler.postAtTime(
        {
            Log.e("postAtTime 2", " printed 2 ")
        },
        token2,
        SystemClock.uptimeMillis() + 4000
    )
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么在 Kotlin 中,对于 类型的标记IntLong处理程序不会删除回调?

编辑 如果我尝试使用注释值,它会起作用

android kotlin android-handler

2
推荐指数
1
解决办法
776
查看次数

标签 统计

android ×2

android-handler ×1

handler ×1

kotlin ×1

postdelayed ×1