Как я могу получить доступ к методу из моего класса SocketService к классу MainFragment, чтобы вернуть, что соединение с сокетом установлено, mSocket
подключено.
Мне нужно установить соединение в Сервисе, а не во Фрагменте, и как методы узнают, что соединение активно?
SocketService.java
public int onStartCommand(Intent intent, int flags, int startId) {
try {
mSocket = IO.socket(Constants.CHAT_SERVER_URL);
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
mSocket.connect();
mSocket.on("new message", onNewMessage);
}
return START_STICKY;
}
Это метод, который мне нравится вызывать во фрагменте
public Socket getSocket() {
return mSocket.connect();
}
Как сообщить Фрагменту, что соединение уже установлено в Сервисе
MainFragment.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
// ChatApplication app = (ChatApplication) getActivity().getApplication();
SocketService app = (SocketService) getActivity().getApplication();
mSocket = app.getSocket();
mSocket.on(Socket.EVENT_CONNECT,onConnect);
mSocket.on(Socket.EVENT_DISCONNECT,onDisconnect);
mSocket.on(Socket.EVENT_CONNECT_ERROR, onConnectError);
mSocket.on(Socket.EVENT_CONNECT_TIMEOUT, onConnectError);
mSocket.on("new message", onNewMessage);
Intent intent = new Intent(getActivity(), SocketService.class);
getActivity().startService(intent);
// mSocket.connect();
startSignIn();
}