Наконец, я выбрал альтернативный вариант:
Я создаю синхронизированный буфер сообщений, автором которого является обратный вызов в потоке сокета, а читатель отображается в файле aidl.
Хотя это и немного избыточно, это единственный способ, который я могу найти для достижения своей цели на данный момент.
public class CBuffer {
private List<String> list =
new ArrayList<String>();
public synchronized void add(String cmd) {
list.add(cmd);
notifyAll();
}
public synchronized String get()
throws InterruptedException
{
while (list.size() == 0)
wait();
return list.remove(0);
}
}