2016-12-01 4 views
0

https://developer.android.com/training/monitoring-device-state/connectivity-monitoring.htmlConnectivityManager.CONNECTIVITY_ACTION Broadcast приемник

ConnectivityManager.CONNECTIVITY_ACTION не будет работать статически в Android 7.0, как в Android Developer, но почему он не работает в старых версиях андроида

+1

Скорее всего, ConnectivityManager обесценивается и не будет работать для более новых моделей так же, как и для других моделей. Хорошим примером является просмотрщик ресайклеров, который работает в зависимости от того, какой из sdk вы используете. – MNM

+0

Я хочу отслеживать сетевое подключение для моего приложения, даже если приложение не работает, какие-либо предложения? – User000

+0

@MNM Нет указаний на то, что 'ConnectivityManager' устарел. Кроме того, 'RecyclerView' не ведет себя по-разному в зависимости от того, какую версию платформы вы используете, потому что' RecyclerView' не является частью платформы. Это отдельная библиотека, которая скомпилирована в ваш APK независимо от того, какая версия платформы в конечном итоге будет работать. – Karakuri

ответ

1

Вам не нужно следить за подключение к сети в любое время для этого кейс. Когда пользователь использует ваше приложение, вы можете проверить сеть в соответствии с предоставленной вами ссылкой. Если вы не подключены, вы можете использовать JobScheduler, чтобы запланировать задание и использовать jobInfoBuilder.setRequiredNetworkType(NETWORK_TYPE_ANY), и система будет выполнять вашу работу, когда есть сетевое подключение, даже если ваше приложение с тех пор ушло на задний план. Задание должно просто запустить службу, которая загружает все изменения, которые ожидаются.

В качестве альтернативы, если он подходит для вашего прецедента, вы можете write a SyncAdapter и просто запросить синхронизацию, и SyncManager будет запускать ваш SyncAdapter, если это необходимо.

+0

Спасибо за ваше предложение. Я хочу что-то Событие управляется, как широковещательный приемник, где в моем приложении я могу получать уведомление, когда подключен интернет (приложение не находится в фоновом режиме). Использование приложения планировщика заданий не может уведомлять о подключении к Интернету, оно планирует работу по времени, тогда как я хочу, чтобы это было связано с событиями. – User000

+0

API-интерфейсы 'JobScheduler' вообще не предлагают мне, чтобы задания были основаны на времени. Тем не менее, если ваше приложение находится в фоновом режиме, это не имеет значения; вы не _need_ для загрузки на сервер в тот момент, когда есть возможность подключения, не так ли? (тот факт, что вы создаете приложение в автономном режиме, говорит, что ответ на этот вопрос отсутствует) – Karakuri

+0

Спасибо, он работал для API> = 21.но как поддерживать API <21 – User000

Смежные вопросы