Codename One - сокет закрыт, когда устройство находится в режиме ожидания - PullRequest
0 голосов
/ 12 июня 2018

Я разрабатываю приложение для iOS, используя Codename One.Я расширил класс SocketConnection, чтобы получать данные с сервера.

Я протестировал приложение на iPhone 7s (iOS версия 11.2.5 15D60), и оно отлично работает.Когда я нажимаю кнопку «Домой», приложение приостанавливается, но сохраняет соединение с сервером сокетов.Но когда устройство переходит в режим ожидания, подключение к сокету закрывается.

Можно ли избежать такого поведения, чтобы сохранить подключение к сокету?

1 Ответ

0 голосов
/ 13 июня 2018

Короткий ответ: Нет, и это хорошо.

Длинный ответ: Когда приложение приостанавливается в iOS, если оно использует слишком много ресурсов, ОС убивает приложение, чтобы сохранить время автономной работы.Apple в некоторых случаях разрешает некоторым приложениям выполнять задачи в фоновом режиме, но даже в этом случае действуют жесткие ограничения, за которыми трудно следить и которые часто изменяются.

Обычно вы определяете фоновое поведение, которое позволяет вам что-то делать вфон.Например, в этом посте мы обсуждаем фоновую выборку , которая позволяет вам продолжать опрашивать сервер, когда мы находимся в фоновом режиме.Это может не работать с сокетами.

«Правильным» с точки зрения iOS будет приостановка вашего соединения в фоновом режиме и использование push-уведомлений для уведомления пользователя о потенциальном обновлении.

...