gpt4 book ai didi

java - android:停止处理程序

转载 作者:行者123 更新时间:2023-12-02 07:23:18 24 4
gpt4 key购买 nike

我正在制作一个应用程序并使用处理程序。在A类中,显示一些带文字的按钮,然后使用

handler.postDelayed(new Runnable(){@Override public void run() {blankbutton();}}, 10000); 

这样,经过 10 秒后,按钮上的文本就会被删除。

但是,如果用户此时按下重置按钮(在另一个类中),例如,在处理程序计数时间后 3 秒后,那么将发生的情况是,按下重置后 7 秒,按钮上的文本将是已删除:处理程序不会停止。

如何停止另一个类中的处理程序(在重置类中)?我检查过一些类似的问题,答案是

handler.removeCallbacks(Runnable);

但是,在重置类下,它显示“Runnable 无法解析为变量

非常感谢!!

最佳答案

您的问题是您正在创建一个匿名内部 Runnable 对象。当您尝试删除回调时,您将无法引用它。像这样的东西就会让它工作:

Runnable txtClearRun = new Runnable(){
public void run() {
blankbutton();
}
};
handler.postDelayed(txtClearRun, 10* 1000);
.
.
.
handler.removeCallbacks(txtClearRun);

不同之处在于,通过这种方式,您可以将可运行对象分配给变量 txtClearRun ,以便稍后在您想要将其传递给 removeCallbacks( );

关于java - android:停止处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13903771/

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