Я вызываю метод из класса Application to Fragment следующим образом:
ChatApplication app = (ChatApplication) getActivity().getApplication();
mSocket = app.getSocket();
, и я получаю mSocket
соединение. Как сделать то же самое, но с помощью службы вместо приложения? Фрагменту требуется соединение с сокетом для запуска других действий.Мне нужно, чтобы соединение было в Сервисе, а не во Фрагменте или другом.
ChatApplication.java
package com.github.nkzawa.socketio.androidchat;
import android.app.Application;
import io.socket.client.IO;
import io.socket.client.Socket;
import java.net.URISyntaxException;
public class ChatApplication extends Application {
private Socket mSocket;
{
try {
mSocket = IO.socket(Constants.CHAT_SERVER_URL);
mSocket.connect();
} catch (URISyntaxException e) {
throw new RuntimeException(e);
}
}
public Socket getSocket() {
return mSocket;
}
}
MainFragment.java
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
ChatApplication app = (ChatApplication) getActivity().getApplication();
mSocket = app.getSocket();
startSignIn();
}