我使用C#/ Mono安排NSUserNotificationCenter
通知,如下所示:
var not = new NSUserNotification();
not.Title = ...;
not.DeliveryDate = ...;
not.DeliveryRepeatInterval = new NSDateComponents() {
Second = 65
};
...
NSUserNotificationCenter.DefaultUserNotificationCenter
.ScheduleNotification(not);
这是按预期工作的。出现初始通知,然后在65秒延迟下一个,然后是下一个等等。
但是:在我退出应用程序后,通知一直出现!他们仍然这样做。
我删除了应用程序并清空了垃圾桶。我重启了我的Mac。我在设置/通知中心中打开/关闭应用程序的通知。一切都没有用。
我遵循建议删除OSX Sierra腹部的SQLite通知数据库。只有旧的 .db 文件。什么都没有改变。
我既不能从通知中心删除该应用程序,也不能停止预定的通知。
我还能做什么?
PS:确切地说:我检查了posting,但没有任何工作。
答案 0 :(得分:0)
好的,我自己解决了这个问题。确实存在于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>
。我首先对我的应用仍然列在设置/通知中感到困惑。但至少烦人的通知不再出现了。
祝你好运!