В моем приложение запускается служба , в которой крутится сокет , он слушает приходящие сообщения клиенту. когда я полностью закрываю приложение служба работает , но спустя пол дня служба может выключится по не понятным причинам. Так же если вызвать сборщик мусора в телефоне , который закрывает все окна, убирает мусор и т.д , то служба то же выключается. Как продлить время моей службы?
Метод который запускает службу
public override StartCommandResult OnStartCommand(Intent intent, StartCommandFlags flags, int startId)
{
notif = DependencyService.Get<IStaticNotification>().ReturnNotif();
StartForeground(ServiceRunningNotifID, notif);
NotificationMessageManager = (NotificationMessage)DependencyService.Get<INotificationManager>();
NotificationMessageManager.NotificationReceived += (sender, eventArgs) =>
{
var evtData = (Service.Notification.NotificationEventArgs)eventArgs;
ShowNotification(evtData.Title, evtData.Message);
};
NotificationCalllManager.NotificationReceived += (sender, eventArgs) =>
{
var evtData = (Service.Notification.NotificationEventArgs)eventArgs;
ShowNotification(evtData.Title, evtData.Message);
};
socket.MyWebSocket = new WebSocketSharp.WebSocket("ws://" + address);
socket.MyWebSocket.WaitTime = TimeSpan.FromSeconds(5.0);
socket.MyWebSocket.OnMessage += Ws_OnMessage;
socket.MyWebSocket.OnOpen += Ws_OnOpen;
socket.MyWebSocket.OnClose += Ws_OnClose;
socket.MyWebSocket.OnError += Ws_OnError;
// socket.MyWebSocket.Connect();
// создаем новый поток
Thread myThread = new Thread(MyTimer);
// запускаем поток myThread
myThread.Start();
return StartCommandResult.Sticky;
}
Службу я создал, что бы обрабатывать входящие сообщения со своего сервера и в зависимости от состояния приложения показывать Push Уведомления. Я читал за FCM или GCM, но мне надо реализовать задачу именно через службу или другими путями , без использования сторонних серверов , типа FCM