gpt4 book ai didi

java - 删除 UI 线程中已发送的消息

转载 作者:太空宇宙 更新时间:2023-11-04 12:50:28 26 4
gpt4 key购买 nike

让我详细说明一下,例如,如果我有以下代码:

该对象由主 UI 线程创建:

Handler handler= new Handler();

然后我使用:

handler.postDelayed(new Runnable(){
}, 1000);

我的问题是,我可以取消该操作,以便将其发布到主线程的消息队列吗?

最佳答案

您可以使用 removeCallbacks() 删除之前发布的 Runnables处理程序上的方法用于发布它们。您需要对已发布的 Runnable 进行准确引用。

在您的代码中,您发布一个 Runnable,同时匿名内联声明它。如果这样做,将不会保留对该 Runnable 的引用。相反,您可以将对新 Runnable 的引用存储在成员变量中,或者在您想要删除它时不会忘记的内容。

private Runnable r;  // assign before use
private Handler h; // assign before use

private void schedule() {
h.postDelayed(r, 99999);
}

private void cancel() {
h.removeCallbacks(r);
}

关于java - 删除 UI 线程中已发送的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35881814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com