私は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;
...
}
}
とても簡単な質問かもしれませんが、どこにも答えが見つからなかったので、誰か助けていただければ幸いです