我有一个应用,希望每次使用socket.io
库向我的用户发送消息。我的问题是在服务中运行socket.io
时,打开应用程序后一切正常。但是,当我关闭应用程序时,服务正在运行,但套接字已断开连接,并且没有从服务器获取任何数据;当我打开应用程序时,它的工作非常好。
我该怎么办?这是我的代码:
public class HelloService extends Service { // the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
private Socket socket;
{
try{
socket = IO.socket("http://192.168.1.35:3000");
}catch(URISyntaxException e){
throw new RuntimeException(e);
}
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
socket.connect();
socket.on("message", handleIncomingMessages);
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Toast.makeText(this, "Service Started", Toast.LENGTH_LONG).show();
socket.connect();
socket.on("message", handleIncomingMessages);
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Toast.makeText(this, "Service Destroyed", Toast.LENGTH_LONG).show();
}
private Emitter.Listener handleIncomingMessages = new Emitter.Listener(){
@Override
public void call(final Object... args){
JSONObject data = (JSONObject) args[0];
String message;
String imageText;
try {
message = data.getString("text").toString();
Log.d("javab", message.toString());
} catch (JSONException e) {
// return;
}
}
};
}