如何在后台执行任务?



我想使用WorkRequest每天在后台运行一个任务。但是我有两个问题:

  1. 这些代码在每次应用程序运行时再次执行。
  2. 当应用程序关闭时,代码将不会被执行。

我还希望代码在程序关闭时运行

您可以使用Handler或者workManager。

WorkManager适用于运行Android 5.0或更高版本的设备。如果你的最小sdk版本高于或等于那个,最好使用那个。Work Manager通常用于可延迟的任务,如发送分析事件等。

您可以使用WorkManager.enqueueUniquePeriodicWork()方法来安排您的工作。这项工作只会有一个实例。ExistingPeriodicWorkPolicy.KEEP保留现有的工作,并忽略每次应用程序启动时的新请求。

的例子:

WorkManager.getInstance(this).enqueueUniquePeriodicWork(
"UNIQUE_TAG",
ExistingPeriodicWorkPolicy.KEEP,
yourWorkRequest
)

来源:https://developer.android.com/topic/libraries/architecture/workmanager/how-to/managing-work独特作品

有几种方法可以在后台线程中执行任务,而不是在UI线程中使用它。

  1. 使用AysnkTask。教程:AsyncTask

  2. 使用RxJava
  3. 。RxJava帮助您在其他线程中执行任务,甚至管理任务在哪个线程中执行的结果。教程RxJava

最新更新