Мне нужно показать уведомление, когда пользователь завершил работу приложения и подключился к сети.Пока я использую этот код, и он прекрасно работает!
class MyJobService : JobService() {
override fun onStartJob(job: JobParameters): Boolean {
Log.w("This loggs out when user receives network", "I want to show notification")
return false // Answers the question: "Is there still work going on?"
}
override fun onStopJob(job: JobParameters): Boolean {
return false // Answers the question: "Should this job be retried?"
}
Вот диспетчер
val dispatcher = FirebaseJobDispatcher(GooglePlayDriver(context))
val myJob = dispatcher.newJobBuilder()
.setService(MyJobService::class.java)
.setLifetime(Lifetime.FOREVER)
.setLifetime(Lifetime.UNTIL_NEXT_BOOT)
.setTag("UniqueTagForYourJob")
.setReplaceCurrent(true)
.setRecurring(false)
.setTrigger(Trigger.executionWindow(0, 10)) .setRetryStrategy(RetryStrategy.DEFAULT_LINEAR) .setConstraints(Constraint.ON_ANY_NETWORK)
.setExtras(myExtrasBundle)
.build()
dispatcher.mustSchedule(myJob)
Прямо сейчас этот код открывает приложение.Я думаю, что одним из основных случаев является то, что onStartJob работает в основном потоке.Но мне нужно только показывать уведомление при восстановлении сети, а не открывать приложение.Если у вас есть какие-то другие решения, то я буду рад узнать о них:)