繁体   English   中英

如何在后台执行任务?

[英]How to perform an task in the background?

我想每天使用 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#unique-work

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

  1. 使用 AysnkTask。 教程:异步任务

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM