java - android:停止处理程序

标签 java android handler

我正在制作一个应用程序并使用处理程序。在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/

相关文章:

java - 如何使用 commons dbutils 获取生成的 key ?

java - 如何防止Eclipse在调试中遇到断点时自动打开调试面板

java - 在没有 Intent 的情况下在android中发送邮件

java - Jbehave依赖导致运行时出错

android - 如何在 DatePickerDialog 中将当前日期设置为 MinDate

.net - 清除程序的所有处理程序的通用函数?

java - Android 处理程序和线程在启动时未运行?

android - "_Problem Loading Widget"是否可以检测和处理加载错误?

java - 在 android Studio 中,我希望当我单击按钮时,下一个 Activity/fragment 应该来自右侧

java - 奇怪的操作,应用程序完成后处理程序仍然调用