Skip to content

Instantly share code, notes, and snippets.

@brainail
Last active May 10, 2018 13:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brainail/c83ee61ac97b6716c89c55472016640a to your computer and use it in GitHub Desktop.
Save brainail/c83ee61ac97b6716c89c55472016640a to your computer and use it in GitHub Desktop.
fun getSchedulers(): List<Scheduler> {
if (mSchedulers == null) {
mSchedulers = Arrays.asList(
Schedulers.createBestAvailableBackgroundScheduler(mContext),
GreedyScheduler(mContext, this))
}
return mSchedulers
}
internal fun createBestAvailableBackgroundScheduler(context: Context): Scheduler {
var scheduler: Scheduler
var enableFirebaseJobService = false
var enableSystemAlarmService = false
if (Build.VERSION.SDK_INT >= WorkManagerImpl.MIN_JOB_SCHEDULER_API_LEVEL) {
scheduler = SystemJobScheduler(context)
setComponentEnabled(context, SystemJobService::class.java, true)
} else {
try {
scheduler = tryCreateFirebaseJobScheduler(context)
enableFirebaseJobService = true
} catch (e: Exception) {
scheduler = SystemAlarmScheduler(context)
enableSystemAlarmService = true
}
}
setComponentEnabled(context, FIREBASE_JOB_SERVICE_CLASSNAME, enableFirebaseJobService)
setComponentEnabled(context, SystemAlarmService::class.java, enableSystemAlarmService)
return scheduler
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment