This class was deprecated in API level 26.1.0.
As of Android O, background check restrictions make this class no longer generally useful. (It is
generally not safe to start a service from the receipt of a broadcast, because you don't have any
guarantees that your app is in the foreground at this point and thus allowed to do so.) Instead,
developers should use android.app.job.JobScheduler to schedule a job, and this does not require that
the app hold a wake lock while doing so (the system will take care of holding a wake lock for the job).
problem application error when ran and set in background on android O:
why this happens in android O there are new background restrictions
solution We need to replace WakefulBroadcastReceiver with JobScheduler as is recommended in the docs: