У меня есть приложение с графическим интерфейсом и TCP-сервером.Сервер TCP работает в другом потоке, и при получении определенного пакета он должен начать воспроизведение видеофайла (из объекта MediaPlayer).Проблема заключается в том, что в качестве компонента графического интерфейса видео может отображаться только в том случае, если оно вызывается из основного потока.Я добавил класс слушателя в основной класс:
Class RequestListener implements NBRequestListener{ /* NBRequestListener is the interface */
public void onRequestArrived(String request) {
processRequest(request); /* This method will run the video */
}
Я создал слушателя в главном потоке и установил его в качестве слушателя на сервере:
RequestListener listener = new RequestListener();
server.setRequestListener(listener);
Код всервер:
public void setRequestListener(_listener) {
listener = _listener; } /* listener is defined as RequestListener */
и вызов события (на сервере) просто:
listener.onRequestArrived(input_from_client);
Но метод слушателя вызывается в потоке сервера, а не в основномнить и, следовательно, я получаю исключение: java.lang.reflect.InvocationTargetException
.Не могли бы вы помочь определить проблему?