您可以使用:
Handler handler = new Handler()
handler.postDelayed(new Runnable())
或者您可以使用:
handler.removeCallbacksAndMessages(null);
Docs
公共最终无效removeCallbacksAndMessages(对象令牌)
添加到 API 级别 1 删除任何待处理的回调帖子并发送
obj 为 token 的消息。如果 token 为 null,则所有回调和
消息将被删除。
或者你也可以这样做:
Handler handler = new Handler()
Runnable myRunnable = new Runnable() {
public void run() {
// do something
}
};
handler.postDelayed(myRunnable,zeit_dauer2);
Then:
handler.removeCallbacks(myRunnable);
Docs
公共最终无效removeCallbacks(Runnable r)
添加到 API 级别 1 删除 Runnable r 的任何待处理帖子
在消息队列中。
公共最终无效removeCallbacks(Runnable r,对象令牌)
Edit:
改变这个:
@Override
public void onClick(View v) {
Handler handler = new Handler();
Runnable myRunnable = new Runnable() {
To:
@Override
public void onClick(View v) {
handler = new Handler();
myRunnable = new Runnable() { /* ... */}
因为你有以下内容。之前声明过onCreate
但你重新声明然后初始化它onClick
导致 NPE。
Handler handler; // declared before onCreate
Runnable myRunnable;