如何显示线程中的Toast消息?
发布于 2010-06-29 01:37:16
你可以通过从你的线程中调用Activity
的runOnUiThread
方法来实现:
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
}
});
发布于 2012-10-15 22:06:32
我喜欢在我的活动中有一个名为showToast
的方法,我可以从任何地方调用它……
public void showToast(final String toast)
{
runOnUiThread(() -> Toast.makeText(MyActivity.this, toast, Toast.LENGTH_SHORT).show());
}
然后,我最常在任何线程的MyActivity
中调用它,就像这样……
showToast(getString(R.string.MyMessage));
发布于 2015-12-11 07:12:05
这与其他答案类似,但是针对新的可用apis进行了更新,并且更加简洁。此外,也不会假设您处于活动上下文中。
public class MyService extends AnyContextSubclass {
public void postToastMessage(final String message) {
Handler handler = new Handler(Looper.getMainLooper());
handler.post(new Runnable() {
@Override
public void run() {
Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show();
}
});
}
}
https://stackoverflow.com/questions/3134683
复制相似问题