7

我构建了一个创建服务的 AsyncTask,现在我想从服务发送到 AsyncTask 消息。我在 AsyncTask 上的代码是:

  class ResponseHandler extends Handler {
  public void handleMessage(Message message) {
       // Toast.makeText(this, "message from service",Toast.LENGTH_SHORT).show();
 }

如果我错了,希望它会处理来自服务的消息纠正我的错误。

并且从服务中尝试这样做

     Message message = Message.obtain(null, MyService.ADD_RESPONSE_HANDLER);
     message.replyTo = messenger;
      try {
             myService.send(message);
             catch (RemoteException e) {
             e.printStackTrace();
         }

但我的错误是在行中找不到符号:

 MyService.ADD_RESPONSE_HANDLER
  message.replyTo = messenger;
  try {
  myService.send(message);

我需要添加什么?请给我一个可以完成工作的代码。多谢。

4

2 回答 2

7

One way is using ResultReceiver. Here is my complete blog post which I had recently posted with an Example.

How to update Activity from Service using ResultReceiver

于 2012-06-29T09:42:05.777 回答
4

要从服务向 Activity 发送消息或任何数据,您需要注册一个自定义广播接收器。请参阅这些教程以从服务向 Activity 发送数据:

服务和活动之间的通信 - 第 1 部分

使用接收器自定义意图和广播

于 2012-06-29T09:46:18.230 回答