删除 Mac OSX 上的预定通知
Remove scheduled notifications on Mac OSX
我使用 C#/Mono 来安排 NSUserNotificationCenter
的通知,如下所示:
var not = new NSUserNotification();
not.Title = ...;
not.DeliveryDate = ...;
not.DeliveryRepeatInterval = new NSDateComponents() {
Second = 65
};
...
NSUserNotificationCenter.DefaultUserNotificationCenter
.ScheduleNotification(not);
这按预期工作了。出现初始通知,然后在延迟 65 秒后出现下一个通知,然后是下一个通知等
但是:在我退出应用程序后,通知一直出现!他们仍然这样做。
我删除了应用程序并清空了垃圾桶。我重新启动了 Mac。我在 settings/notification 中心 中切换了应用程序 on/off 的通知。都无济于事。
我按照建议删除了 OSX Sierra 内部的 SQLite 通知数据库。只有旧的 .db 文件。没有任何变化。
既不能从通知中心删除应用程序,也不能停止定时通知。
我还能做什么?
PS:准确地说:我检查了这个 posting,但没有任何效果。
好的,我自己解决了这个问题。该解决方案确实已经存在于 previous posting 中。但是我不知何故没有正确应用它。如果您在 OSX Sierra 上遇到不需要的通知,请执行以下步骤:
- 找到通知中心数据库:
cd (getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db
(把()
换成反引号!)
- 用
pwd
确定完整路径,例如/var/folders/b4/qw_sstpn1jqd8ypb1zgc7vww0000gn/0/com.apple.notificationcenter/db
。这引用了目录,还不是文件!
- 在找到的目录中打开名为
db
的文件,例如/var/folders/b4/qw_sstpn1jqd8ypb1zgc7vww0000gn/0/com.apple.notificationcenter/db/db
- 是的,最后是 db/db
- 使用 SQLite 编辑器。
- 搜索显示
select * from app_info where bundleid = "%yourappname%". Remember the
app_id` 值的应用。
- 删除应用信息记录,从而删除其他表中的所有相关数据
delete from app_info where app_id = <your app id>
。
- 必要时将更改保存到数据库。
- 重新启动您的 Mac 并重新登录。您现在应该没问题了。
我首先对我的应用程序仍列在 settings/notifications 中感到困惑。但至少烦人的通知不会再出现了。
祝你好运!
我使用 C#/Mono 来安排 NSUserNotificationCenter
的通知,如下所示:
var not = new NSUserNotification();
not.Title = ...;
not.DeliveryDate = ...;
not.DeliveryRepeatInterval = new NSDateComponents() {
Second = 65
};
...
NSUserNotificationCenter.DefaultUserNotificationCenter
.ScheduleNotification(not);
这按预期工作了。出现初始通知,然后在延迟 65 秒后出现下一个通知,然后是下一个通知等
但是:在我退出应用程序后,通知一直出现!他们仍然这样做。
我删除了应用程序并清空了垃圾桶。我重新启动了 Mac。我在 settings/notification 中心 中切换了应用程序 on/off 的通知。都无济于事。
我按照建议删除了 OSX Sierra 内部的 SQLite 通知数据库。只有旧的 .db 文件。没有任何变化。
既不能从通知中心删除应用程序,也不能停止定时通知。
我还能做什么?
PS:准确地说:我检查了这个 posting,但没有任何效果。
好的,我自己解决了这个问题。该解决方案确实已经存在于 previous posting 中。但是我不知何故没有正确应用它。如果您在 OSX Sierra 上遇到不需要的通知,请执行以下步骤:
- 找到通知中心数据库:
cd (getconf DARWIN_USER_DIR)/com.apple.notificationcenter/db
(把()
换成反引号!) - 用
pwd
确定完整路径,例如/var/folders/b4/qw_sstpn1jqd8ypb1zgc7vww0000gn/0/com.apple.notificationcenter/db
。这引用了目录,还不是文件! - 在找到的目录中打开名为
db
的文件,例如/var/folders/b4/qw_sstpn1jqd8ypb1zgc7vww0000gn/0/com.apple.notificationcenter/db/db
- 是的,最后是db/db
- 使用 SQLite 编辑器。 - 搜索显示
select * from app_info where bundleid = "%yourappname%". Remember the
app_id` 值的应用。 - 删除应用信息记录,从而删除其他表中的所有相关数据
delete from app_info where app_id = <your app id>
。 - 必要时将更改保存到数据库。
- 重新启动您的 Mac 并重新登录。您现在应该没问题了。
我首先对我的应用程序仍列在 settings/notifications 中感到困惑。但至少烦人的通知不会再出现了。
祝你好运!