我有一个监听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文档中的高级部分;它提到了Chained sequences,但这些序列必须显式地链接在一起(beginWith/then/then/...)。