Android Local Notification Cordova:等待cancelAll完成

时间:2013-02-19 14:54:15

标签: java javascript android cordova

我有带有插件的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;
}

1 个答案:

答案 0 :(得分:0)

  

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

你做不到。 cancelAll()是异步的。

  

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

为什么你首先打电话给cancelAll()?就地更新通知。

此外,请不要有多个通知,因为这被认为是糟糕的形式。对所有未完成的“消息”进行一个通知,当用户对这些“消息”采取行动(例如,访问收件箱)时,该消息将被清除。