Мальчик понял вашу точку зрения. То, что вы указали, совершенно верно, что вы должны стараться избегать широковещательных приемников для такой ситуации, поскольку люди в наши дни имеют большое количество приложений, и каждый запрос на запуск приложения после подключения к Интернету приведет к зависанию системы пользователя, поскольку каждое приложение хочет отправить запрос после подключения Wi-Fi. Таким образом, система Android поставляется с JET PACK, после чего вы не должны выполнять действие своего приложения, а запрашивать это действие в системе Android, и они будут обрабатывать фоновый запрос.
Как упомянул Саид выше, идите с
Constraints constraints = new Constraints.Builder()
.setRequiredNetworkType(NetworkType.CONNECTED)
.build();
OneTimeWorkRequest onetimeJob = new OneTimeWorkRequest.Builder(YourJob.class)
.setConstraints(constraints).build(); // or PeriodicWorkRequest
WorkManager.getInstance().enqueue(onetimeJob);
Но подождите, вы хотите запустить работу при подключении к Интернету, поэтому вы хотите что-то вроде устаревшей трансляции для изменения подключения. Почему ты не делаешь что-то одно? Каждый раз, когда вы получаете данные, когда пользователь находится на переднем плане или в фоновом режиме, запускайте диспетчер работы. Если вы используете его дооснащение, он возвращает ошибку, когда нет подключения к Интернету, поэтому вы можете запланировать задание, когда сбой вызван сетью.
Так ты работаешь будешь
override fun onFailure(call: Call<Chat>, t: Throwable) {
Log.v("chatsyncchecking","sending message failed",t)
if(t is IOException){
Log.v("chatsyncchecking","scheduling chat sync")
(app as App).enqueueChatSync()
}
}
(Вы можете запускать каждый запрос из класса приложения)
Таким образом, это дает вам преимущество в том, что вам не следует увольнять менеджера по работе всякий раз, когда подключен Интернет. Просто вы стреляете, когда какая-то задача терпит неудачу. Это также делает меньше запросов на работу для системы Android. В конце концов, мы все являемся сообществом, которое помогает улучшить Android, а пользователи получают большой опыт работы с телефоном без особых задержек. Надеюсь, это поможет
person
Sháilèndra Wregmi
schedule
29.09.2019