【发布时间】:2018-10-15 00:29:02
【问题描述】:
我有一项服务正在侦听传入的 FCM 通知。收到此类通知后,我使用 WorkManager 运行作业。
当同时收到多个通知时,如何确保一次只执行一个作业?作业应按顺序执行。在这种情况下,我想发送一条短信,而这些短信不能同时发送。 (请注意,在发送短信之前和之后,我会在此作业中执行其他操作,例如 http 请求,这就是为什么我决定为它创建一个作业,而不是直接从服务发送短信。)
public class MyFirebaseMessagingService extends FirebaseMessagingService {
public void onMessageReceived(RemoteMessage remoteMessage) {
//...
OneTimeWorkRequest sendSmsWorker = new OneTimeWorkRequest.Builder(SendSmsWorker.class).build();
WorkManager.getInstance().enqueue(sendSmsWorker);
//...
}
}
我查看了 WorkManager 文档中的高级部分;它提到了链式序列,但是它们必须明确地相互链接(beginWith/then/then/...)。
【问题讨论】:
标签: android android-workmanager