Android 7.0.2自定义Toast显示时间 使用Handler 第一次正常但第二次失败
时间: 2023-12-03 08:42:13 浏览: 44
Android Service中使用Toast无法正常显示问题的解决方法
可能是由于多次调用 `Handler` 导致的问题,建议在第二次调用前先移除之前的消息。
可以使用 `removeCallbacksAndMessages()` 方法移除之前的所有消息,再重新发送新的消息,代码示例:
```java
private Handler mHandler = new Handler();
private Toast mToast;
public void showToast(final String message, final int duration) {
mHandler.removeCallbacksAndMessages(null);
if (mToast == null) {
mToast = Toast.makeText(getApplicationContext(), message, duration);
} else {
mToast.setText(message);
mToast.setDuration(duration);
}
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mToast.show();
}
}, 0);
}
```
这样每次调用 `showToast` 方法时,会先移除之前的消息,然后重新发送新的消息。
阅读全文