Android 7.0.2自定义Toast显示时间 使用Handler 第一次正常但第二次失败
时间: 2023-12-03 13:42:19 浏览: 44
这可能是因为你没有在第二次显示Toast之前取消第一个Toast。
在使用Handler时,你需要注意以下几点:
1. 如果你想在显示Toast的时候使用Handler,你需要在代码中创建一个Handler对象,并将其与主线程的Looper绑定。
2. 在调用Handler.postDelayed()方法之前,你需要调用Handler.removeCallbacks()方法,以取消之前的消息。
下面是一个简单的示例代码,演示如何使用Handler显示Toast并正确取消之前的消息:
```java
public class MainActivity extends AppCompatActivity {
private Handler mHandler = new Handler(Looper.getMainLooper());
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "Hello, world!", Toast.LENGTH_SHORT).show();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 显示第一个Toast
mHandler.postDelayed(mRunnable, 2000);
// 显示第二个Toast
mHandler.removeCallbacks(mRunnable);
mHandler.postDelayed(mRunnable, 4000);
}
}
```
在上面的代码中,我们使用Handler显示两个Toast,第一个Toast会在2秒后显示,第二个Toast会在4秒后显示。我们在第二个Toast显示之前,调用了Handler.removeCallbacks()方法,以取消之前的消息。这样,我们就可以确保只有第二个Toast会被显示,而不会出现任何问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![gz](https://img-home.csdnimg.cn/images/20210720083447.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)