Service给Activity发消息
刚刚是Activity给Service发
现在是Service给Activity发
其实是一样的道理
依然仍然还是用Messenger
public class MessengerService extends Service {
private Messenger messenger = new Messenger(new IncomingHandler());
private Messenger mActivityMessenger ;
自定义MessengerService继承Service
创建Messenger对象
@Override
public IBinder onBind(Intent intent) {
IBinder binder = messenger.getBinder();
return binder;
}
覆写onBind方法
获取binder
//1.定义一个 Handler对象,该Handler处理Activity发送过来的消息
class IncomingHandler extends Handler{
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case 0:
Log.d("tag", msg.toString());
if (mActivityMessenger!=null) {
Message message= new Message();
message.what = 2;
message.obj="地瓜地瓜我是土豆";
try {
mActivityMessenger.send(message);
} catch (RemoteException e) {
e.printStackTrace();
}
}
break;
自定义IncomingHandler继承Handler
覆写handleMessage
创建Messenger,message
ActivityMessenger发送message
case 1:
mActivityMessenger = (Messenger) msg.obj;
Log.d("tag", "已经获取到 Activity发送了的Messenger对象");
break;
default:
break;
}
}
}
}