基本上,我有一个具有进度对话框的活动,我正在向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);
但我不知道如何在活动中收到该消息,有人可以解释这种方法吗? 谢谢!
答案 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。