首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WakefulIntentService和Toast

WakefulIntentService和Toast
EN

Stack Overflow用户
提问于 2012-03-08 23:22:04
回答 2查看 271关注 0票数 0

我猜这是一个直接问Mark的问题,但我无论如何也不能从WakefulIntentService的doWakefulWork方法中获得Toast通知。它在onCreate中工作,但我需要使用一些数据,这些数据是我通过toast消息中的意图获取的。

我试图从OnCreate中实例化处理程序,但这似乎没有任何作用。我已经试过我能想到的所有方法了。Toast似乎不是在主线程上运行的。有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-08 23:34:45

一般来说,WakefulIntentService不是为Toast有任何意义的场景而设计的,因为用户可能在附近,也可能不在附近。此外,服务不应该以这种方式直接影响UI,因为如果用户在附近,用户可能不欣赏您的Toast在他们的游戏,他们的导航,他们的电影等。我宁愿你使用其他东西(例如,订购广播更新前台活动或显示一个Notification,如果没有这样的活动)。

如果您确实确定要使用服务中的Toast,那么您的问题应该与WakefulIntentService无关--使用常规的IntentService也会遇到同样的问题。This SO question提供了一些答案,演示了如何使用Handler从服务的后台线程中使用Toast,这可能有助于指出您的Handler实现出了什么问题。

票数 0
EN

Stack Overflow用户

发布于 2012-03-08 23:31:57

代码语言:javascript
复制
       private boolean showToast = false;
        ...
        @Override
        public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (showToast) {
             Toast.makeText(this,"YourText",Toast.LENGTH_LONG).show();
             showToast = false;
        }
        }

只需将showToast = true;从任何地方设置为显示吐司通知即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9620067

复制
相关文章

相似问题

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