首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Android上显示后台线程中的Toast?

如何在Android上显示后台线程中的Toast?
EN

Stack Overflow用户
提问于 2010-06-29 01:31:49
回答 9查看 108.7K关注 0票数 125

如何显示线程中的Toast消息?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2010-06-29 01:37:16

你可以通过从你的线程中调用ActivityrunOnUiThread方法来实现:

代码语言:javascript
复制
activity.runOnUiThread(new Runnable() {
    public void run() {
        Toast.makeText(activity, "Hello", Toast.LENGTH_SHORT).show();
    }
});
票数 256
EN

Stack Overflow用户

发布于 2012-10-15 22:06:32

我喜欢在我的活动中有一个名为showToast的方法,我可以从任何地方调用它……

代码语言:javascript
复制
public void showToast(final String toast)
{
    runOnUiThread(() -> Toast.makeText(MyActivity.this, toast, Toast.LENGTH_SHORT).show());
}

然后,我最常在任何线程的MyActivity中调用它,就像这样……

代码语言:javascript
复制
showToast(getString(R.string.MyMessage));
票数 66
EN

Stack Overflow用户

发布于 2015-12-11 07:12:05

这与其他答案类似,但是针对新的可用apis进行了更新,并且更加简洁。此外,也不会假设您处于活动上下文中。

代码语言:javascript
复制
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();
            }
        });
    }
}
票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3134683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档