Wakeful IntentService和Toast

时间:2012-03-08 15:22:04

标签: android toast commonsware-cwac

我想这对Mark来说是一个问题,但我不能为我的生活获取Toast通知,以便在WakefulIntentService的doWakefulWork方法中工作。它的工作原理是onCreate,但是我需要使用一些我在toast消息中通过意图获得的数据。

我试图在OnCreate中实例化处理程序,但这似乎没有做任何事情。我已经尝试了所有我能想到的东西。 Toast似乎并没有在主线程上运行。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

       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;即可显示吐司通知。

答案 1 :(得分:0)

一般情况下,WakefulIntentService不适用于Toast有意义的情况,因为用户可能会或可能不在身边。此外,服务不应该以这种方式直接影响用户界面,因为如果用户,用户可能不会在游戏过程中感谢您的Toast,他们的导航,他们的电影,我宁愿你使用别的东西(例如,有序广播来更新前景活动,如果没有这样的活动,则显示Notification。)

如果您确定要使用服务中的Toast,那么您的问题应该与WakefulIntentService无关 - 您会遇到与常规{{1}相同的问题}}。 This SO question有一些答案,展示了使用IntentService从服务的后台线程中使用Toast,这可能有助于指出Handler实施出错的位置。