Требуется ли блокировка Android-приложения для подключения через сокет? - PullRequest
0 голосов
/ 13 февраля 2012

мое приложение поддерживает сокетное соединение с сервером через службу, которую я закодировал, но как только телефон спит (через пару минут после выключения экрана), я не могу получить типичный ответ от спящего телефона. Звук обычно воспроизводится, когда служба получает сетевое событие.

У меня вопрос: нужен ли wake_lock для работы моего приложения? Если да, то для каких компонентов полезен этот wake_lock? Мне любопытно, звук и разъем подключения. Смогу ли я сделать это только с частичным wake_lock?

Что касается сокетного соединения, понадобится ли дополнительная блокировка Wi-Fi, если это делается под Wi-Fi? Сокетное соединение состоит только из небольшой транзакции, поэтому есть ли способ, чтобы сокетное соединение было подключено не по Wi-Fi (даже если пользователь включил Wi-Fi), поэтому мне не нужно блокировать Wi-Fi и тратить энергию? или гнездо для подключения удобно делать только под 3g / 4g или может изящно выродиться с wifi на 3g / 4g?

Спасибо!

1 Ответ

1 голос
/ 13 февраля 2012

нужен ли wake_lock для работы моего приложения

Как правило, да. Если ваше сетевое соединение через мобильные данные, и , если , у вас есть открытый сокет к серверу, и , если , этот сервер отправляет вам пакеты, это разбудит телефон вкратце. Однако для выполнения любой серьезной работы вам необходимо приобрести WakeLock. И если любое из выделенных курсивом , если утверждения выше не соответствуют действительности, то вам нужно WakeLock, пока вы пытаетесь поддерживать это соединение.

Следовательно, рассмотрите возможность переключения на C2DM для push-уведомлений.

Смогу ли я сделать это только с частичным wake_lock?

Частичного WakeLock должно быть достаточно.

мне понадобится дополнительная блокировка Wi-Fi, если это делается под Wi-Fi?

Да.

есть ли способ, чтобы я мог подключить сокет не под Wi-Fi (даже если пользователь включил Wi-Fi), поэтому мне не нужно блокировать Wi-Fi и тратить энергию?

Не совсем. Вы запрашиваете сокет соединения. Вы используете любую активную сеть в данный момент.

или розетка удобно делать только под 3g / 4g или может изящно выродиться с wifi до 3g / 4g?

Сетевое подключение изящно возвращается к мобильным данным, если WiFi отключается или иным образом становится недоступным. Однако сокетные соединения не делают. Если у вас есть сокетное соединение по Wi-Fi и WiFi отключается, ваша розетка закрыта, и вам нужно будет снова открыть ее в новой сети.

...