我想这对Mark来说是一个问题,但我不能为我的生活获取Toast通知,以便在WakefulIntentService的doWakefulWork方法中工作。它的工作原理是onCreate,但是我需要使用一些我在toast消息中通过意图获得的数据。
我试图在OnCreate中实例化处理程序,但这似乎没有做任何事情。我已经尝试了所有我能想到的东西。 Toast似乎并没有在主线程上运行。有什么帮助吗?
答案 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
实施出错的位置。