Android本地通知Cordova:等待cancelAll完成

Android Local Notification Cordova: Wait for cancelAll to finish

本文关键字:等待 cancelAll 完成 Cordova 通知 Android      更新时间:2023-09-26

我有一个带有本地通知插件的Cordova应用程序。问题是cancelAll()不会等到它完成,所以在我添加新消息时它仍在删除。

如何同步线程以使cancelAll()等待?

一些相关代码AlarmHelper::cancelAll()

/**
 * @see LocalNotification#cancelAllNotifications()
 */
public boolean cancelAll(SharedPreferences alarmSettings) {
    final Map<String, ?> allAlarms = alarmSettings.getAll();
    final Set<String> alarmIds = allAlarms.keySet();
    for (String alarmId : alarmIds) {
        Log.d(LocalNotification.PLUGIN_NAME, "Canceling notification with id: " + alarmId);
        String alarmInt = alarmId;
        cancelAlarm(alarmInt);
    }
    return true;
}

如何同步线程以使cancelAll()等待?

你不能。cancelAll()是异步的。

问题是cancelAll()不会等到它完成,所以当我添加新消息时,它仍然在删除。

你为什么一开始就给cancelAll()打电话?及时更新您的通知。

此外,请不要有多个通知,因为这被认为是一种糟糕的形式。对所有未处理的"消息"都有一个通知,当用户对这些"消息"采取行动时(例如,访问收件箱),该通知就会被清除。