Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将消息从意图服务发送到活动_Android_Android Activity_Intentservice - Fatal编程技术网

Android 如何将消息从意图服务发送到活动

Android 如何将消息从意图服务发送到活动,android,android-activity,intentservice,Android,Android Activity,Intentservice,基本上,我有一个活动,它有一个进度对话框,我正在向一个意图发送一条消息,以从互联网加载所有数据,而不会在应用程序中出现任何问题。但是,我能够向服务发送消息,但无法将消息重新发送到活动。 怎么办 以下是我向服务发送消息的方式: final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { } }; final Intent intent = new In

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

以下是我向服务发送消息的方式:

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);
下面是我如何从服务接收信息的:

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);
但我不知道如何在活动中接收这些信息,有人能解释一下这种方法吗? 谢谢大家!

使用

handler.dispatchMessage()

并发送一条空消息。声明处理程序静态并按类名访问它,或者简单地创建类的对象然后访问它

我想你也可以用

handler.SendEmptyMessage()

按如下方式进行尝试:

  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);
    };
};

这是你的精确解

这个问题在这里已经解决了

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


如果对您有效,请将其标记为OK。

@GrlsHu我收到了此错误:局部变量处理程序可能尚未初始化将您的
处理程序
设置为
final
类似
private final handler handler=new handler()
@GrlsHu,但您没有回答我的问题,我如何接收消息??