我可以从实现looper或使用HandlerThread的不同线程创建一个toast。使用main looper创建toast或任何ui操作是必须的。
答案 0 :(得分:0)
正如您所提到的,只能在主线程上调用Toast。如果你想从另一个线程中抛出Toast,你必须将其路由到主线程。
你可以通过以下方式做到:
使用Activity中的“runOnUiThread”方法:
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(context, "Hello, world!", Toast.LENGTH_SHORT).show();
}
});
使用Toast调用将runnable发布到Handler 在主线程looper上运行:
private Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
public void run() {
Toast.makeText(context, "Hello, world!", Toast.LENGTH_SHORT).show();
}
});