如何从Intent服务向活动发送消息

时间:2013-12-27 07:23:19

标签: android android-activity intentservice

基本上,我有一个具有进度对话框的活动,我正在向Intent发送一条消息,以便从互联网上加载所有数据,而不会在应用程序中出现任何打嗝。但是,我能够向服务发送消息,但我无法将消息重新发送到活动。 怎么办?

以下是我如何向服务发送消息:

final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {

    }
};
final Intent intent = new Intent(this, FillingDatabase.class);
final Messenger messenger = new Messenger(handler);
intent.putExtra("messenger", messenger);
startService(intent);

以下是我从服务中接收消息的方式:

messenger = (Messenger) intent.getParcelableExtra("messenger");
        message = Message.obtain(null, 1234);
            messenger.send(message);

但我不知道如何在活动中收到该消息,有人可以解释这种方法吗? 谢谢!

3 个答案:

答案 0 :(得分:2)

试试如下:

  private Handler handler = new Handler() 
{
    public void handleMessage(Message message) 
    {
       final Intent intent = new Intent(this, FillingDatabase.class);
       final Messenger messenger = new Messenger(handler);
       intent.putExtra("messenger", messenger);
       startService(intent);
    };
};

答案 1 :(得分:0)

使用

handler.dispatchMessage();

并发送一个空的message.declare处理程序static并按类名访问它,或者只是创建类的对象然后访问它。

我认为你也可以使用

handler.SendEmptyMessage();

答案 2 :(得分:0)

这是您的确切解决方案,

问题已在此处解决sending message from IntentService to Activity

为了更好地理解这一点,这里有一个工作示例,您可以直接使用它来实现 Go here

如果它适合你,请标记为OK。