Can't toast on a thread that has not called Looper.prepare()
时间: 2023-07-31 21:09:26 浏览: 62
这个错误通常发生在 Android 应用程序中,当你在一个没有调用 Looper.prepare() 的线程中试图进行 Toast 操作时会出现这个错误。因为 Toast 操作需要一个消息队列来处理显示和隐藏 Toast 的操作,而这个消息队列只能在调用 Looper.prepare() 后才能创建。
你可以通过在调用 Toast 操作之前先调用 Looper.prepare() 方法来解决这个问题。或者你也可以使用 runOnUiThread() 方法或 Handler 来在 UI 线程中显示 Toast。
以下是一个使用 runOnUiThread() 方法来显示 Toast 的示例代码:
```
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();
}
});
```
如果你在非 UI 线程中需要显示 Toast,你可以使用 Handler 来将消息发送到主线程中进行处理。以下是一个使用 Handler 来显示 Toast 的示例代码:
```
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
Toast.makeText(getApplicationContext(), "Your message", Toast.LENGTH_SHORT).show();
}
});
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)
![](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)