我的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()?就地更新您的通知。

另外,请不要有多个通知,因为这是不正确的形式。对所有未完成的“消息”发出一个通知,当用户对这些“消息”进行了操作(例如,访问收件箱)时,该通知将被清除。

07-24 09:21