背景
我有一个Android.app.Service S
和一个类A
,它们完全禁止使用android.os.Messenger
与S
进行双向通信。
这时,我停留在如何初始化将处理该服务答案的Messenger上。
请考虑以下概述:
public class A implements Handler.Callback {
private Messenger messengerOut; //initialized via S's IBinder
private Messenger messengerIn; //How to init?
void doSomething() {
Message message = acquireMessage();
message.replyTo = this.messengerIn;
this.messengerOut.send(message);
}
private Message acquireMessage(){
//...
}
@Override
public void handleMessage(Message msg){
//...
}
}
问题
简单的答案是:messengerIn = new Messenger(new Handler(this));
但是A
是一个帮助程序类,不会对其运行的线程产生任何影响。
因此,未知它是否具有正在运行的Looper,new Handler(Handler.Callback)
会自动使用它。
因此,下面的问题仍然存在。 如何为处理程序获取有效的循环程序?