Manter Socket.IO conexão sempre ativa (BroadCast)

Consegui estabelecer uma conexão com servidor (NODE.js) via Socket.IO, mas quando encerro a aplicação no modo aplicativos recentes, o Socket desconecta. Pra resolver tentei enviar uma ação para o Broadcast, apartir do metodos onDestroy() e onTaskRemoved() da classe Service, mesmo estando tudo declarado no manifest, não tá dando certo. Alguém já viu algo parecido? que possa me ajudar?

package infinity.android.com.myproguia;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;
import android.util.Log;
import io.socket.client.Socket;

public class SocketService extends Service {
private Socket mSocket;

@Override
public IBinder onBind(Intent intent) {
    // TODO: Return the communication channel to the service.
  return null;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {   
    return START_STICKY;
}

@Override
public void onDestroy() {
    super.onDestroy();

    Intent intent = new Intent("SOCKET_EVENT");
    sendBroadcast(intent);
    Log.d("------>","destroy");

}

@Override
public void onTaskRemoved(Intent rootIntent) {
super.onTaskRemoved(rootIntent);

    Intent intent = new Intent("SOCKET_EVENT");
    sendBroadcast(intent);
    Log.d("------>","task_removed");
    }

}

//manifest

    <receiver android:name="infinity.android.com.myproguia.BroadCastSocket"
        android:label="BroadCastSocket">
        <intent-filter>
            <action android:name="SOCKET_EVENT" />
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
            <action android:name="android.intent.action.BOOT_COMPLETED"/>
            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </receiver>

//broadcast

package infinity.android.com.myproguia;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;

import io.socket.client.Socket;

/**

  • Created by djavan on 23/03/17.
    */
    public class BroadCastSocket extends BroadcastReceiver {

    private Context context;

    @Override
    public void onReceive(Context context, Intent intent) {

     //intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
    
     if(intent.getAction()==intent.ACTION_CLOSE_SYSTEM_DIALOGS){
    //     Toast.makeText(context, "FECHOU!", Toast.LENGTH_SHORT).show();
     }
    
     context.startService(new Intent(context, SocketService.class));
    
         //Toast.makeText(context, "FECHOU!", Toast.LENGTH_SHORT).show();
    
     ConnectivityManager conectivtyManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
     if (conectivtyManager.getActiveNetworkInfo() != null
             && conectivtyManager.getActiveNetworkInfo().isAvailable()
             && conectivtyManager.getActiveNetworkInfo().isConnected()) {
        
         
         mySocket = new SocketConnection(context);
         mySocket.updateSocket();
    
    
     //context.registerReceiver(this, intentFilterACSD);
     }
    

    }
    }

//socket

package infinity.android.com.myproguia;

import android.content.Context;
import android.util.Log;
import android.widget.Toast;

import org.json.JSONException;
import org.json.JSONObject;

import java.net.URISyntaxException;

import io.socket.client.IO;
import io.socket.client.Socket;
import io.socket.emitter.Emitter;

/**

  • Created by djavan on 24/06/17.
    */
    public class SocketConnection {

    public Socket mSocket;
    private Context context;

    public SocketConnection(Context context) {
    this.context = context;
    }

    public void updateSocket() {

     try {
         mSocket = IO.socket(WellcomeActivity.URL_SOCKET);
     } catch (URISyntaxException e) {
         Log.d("socket: ","nada conectado");
     }
    
     //new SocketAsyncTask().execute();
    
     //mSocket.on("bem_vindo",onNewMessage);
     mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {
         @Override
         public void call(Object... args) {
             JSONObject json = new JSONObject();
             try {
                 json.put("login", "juliao");
             } catch (JSONException e) {
                 e.printStackTrace();
             }
    
             mSocket.emit("join", json);
    
             System.out.println("SOCKET CONECTADO");
         }
     }).on("notificacao",new Emitter.Listener() {
    
         @Override
         public void call(Object... args) {
             final String msn = (String) args[0];
    
             Log.d("chegou msn",""+msn);
         }
     });
     mSocket.connect();
    
     if(mSocket.connected()){
         Toast.makeText(context, "FECHOU!", Toast.LENGTH_SHORT).show();
     }else{
         if(!mSocket.connected()){
             Toast.makeText(context, "FECHOU!", Toast.LENGTH_SHORT).show();
             System.out.println("SOCKET DISCONECTADO");
         }
     }
    

    }
    }