0

我想这是直接向 Mark 提出的问题,但我终生无法从 WakefulIntentService 的 doWakefulWork 方法中获得 Toast 通知。它从 onCreate 开始工作,但我需要使用通过 toast 消息中的意图获得的一些数据。

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

4

2 回答 2

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;从任何地方设置即可向您显示吐司通知。

于 2012-03-08T15:31:56.523 回答
0

通常,它不是为 a有意义WakefulIntentService的场景而设计的,因为用户可能在也可能不在。Toast此外,服务不应该以这种方式直接影响 UI,因为如果用户附近,用户可能不会在他们的游戏、导航、电影等中间欣赏你Toast。我宁愿你使用其他东西(例如,命令广播以更新前台活动或Notification在没有此类活动时显示 a)。

如果您确实确定要使用Toast来自服务的 a,那么您的问题应该WakefulIntentService与普通的IntentService. 这个 SO question有一些答案,展示了使用 aToast从服务的后台线程中使用 a Handler,这可能有助于指示您的Handler实现哪里出错了。

于 2012-03-08T15:34:44.697 回答