実現したいこと
Kotlinの非同期処理を並列ではなく順番に処理する方法を探しております。
下記コードはAndroidの通知リスナークラスで、通知されるたびにonNotificationPostedが呼び出されます。
その中でDB登録などを行いたいため非同期で処理を実装したのですが、複数通知が同時にされた場合にDB登録の処理も並列で同時に行われてしまいます。
DB登録時に重複チェックや登録状況に応じて何かしらの処理など行いたいため、並列ではなく順番に実行させたいのですが、良い実現方法は無いでしょうか。
実行したスレッドを中断させるrunBlockingなども試しましたが、うまく機能しませんでした。(別スレッドで実行されているため?)
該当のソースコード
class NoticeListenerService : NotificationListenerService() { private val notificationListenerScope = CoroutineScope(Dispatchers.IO) // 通知されるたびコールされる override fun onNotificationPosted(sbn: StatusBarNotification?) { super.onNotificationPosted(sbn) if (sbn == null ) return notificationListenerScope.launch { // ここでDB登録などを実行 } } }

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/12/20 04:24