Android JetPack - Scheduling Tasks with WorkManager
            Introduction:    WorkManager is one of the Android JetPack component. It is specifically designed for scheduling and managing background tasks. If the app is running, task will be executed in a new thread. Otherwise, WorkManager automatically chooses an appropriate way to do so. It can be AlarmManager, JobScheduler or Firebase JobDispatcher, depends on device's API level and its dependencies.      WorkManager Basics:    Worker  WorkRequest  WorkManager  WorkInfo    (i) Worker:     It specifies what task need to be performed.     class  SampleWorker (context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {      override fun doWork (): ListenableWorker. Result  {         //do the work here         return  ListenableWorker. Result . SUCCESS      } }      (ii) WorkRequest:   It represents which Worker  should perform the task. Also we can specify any constraints/circumstances, based on which the task should be performed. Constraints  can be of Net...