我是android新手,我必须编写一个服务(在不同的进程上)来处理我的互联网通信功能,我查看了一些博客,发现使用信使我们可以在活动和服务之间进行通信(在不同的进程上),
我的问题在这里,到目前为止我正在做这样的事情:
private Messenger _commandReceiver = new Messenger(new CommandDispatcher());
public IBinder onBind(Intent intent) {
return _commandReceiver.getBinder();
}
class CommandDispatcher extends Handler {
public void handleMessage(Message message) {
int command = data.getInt("command");
Messenger activityMessenger = (Messenger) data.get("messenger");
switch (command) {
case Command.IS_AUTHENTICATED:
break;
...
}
}
}
但是为什么我不应该在 onBind 方法上发送命令变量和活动信使并在那里处理整个事件,这样可以完全删除服务信使并且通信代码更简单,它会变成这样
public IBinder onBind(Intent intent) {
Bundle data = intent.getExtras();
int command = data.getInt("command");
Messenger activityMessenger = (Messenger) data.get("messenger");
switch (command) {
case Command.IS_AUTHENTICATED:
break;
...
}
}
我知道这可能是一个非常简单的问题,但我无法在任何地方找到答案,所以如果有人能帮助我,我将不胜感激