【发布时间】:2019-03-28 22:08:25
【问题描述】:
我有一个UNNotificationServiceExtension,它将视频和图像下载到Documents 目录,供采用UNNotificationContentExtension 的类使用。我想删除任何通知不再使用的媒体文件。我不知道该怎么做。
- 我尝试删除 AppDelegate 中的文件,但我相信
UNNotificationServiceExtension有自己的Documents目录,根据本文档的“与包含的应用程序共享数据”部分:https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/ExtensionScenarios.html,所以我无法访问这些文件来自我的主应用程序。它们位于不同的容器中。 - 我不想创建一个应用组来在应用和扩展程序之间共享数据,只是为了删除未使用的文件。
- 我不想删除
UNNotificationServiceExtension中未使用的文件,因为扩展程序完成工作的时间有限,如果我尝试下载文件并删除其他文件,可能会时间出去。
我认为最好的选择是检查任何传递的通知需要哪些文件,并删除通知服务扩展的Documents 目录中不需要的文件。我对此的担忧是,UNNotificationServiceExtension 只给了很短的时间,在此期间它必须完成所有工作,之后它将超时。
所以,我的问题是,“这是从通知服务扩展中清理未使用文件的正确方法,还是有更好的方法?”
【问题讨论】:
-
当您从设备的通知托盘中清除通知时,设备会自动删除随通知下载的媒体(通知内容)。如果您明确地将数据存储在其他地方,那么您必须添加应用程序组才能存储和删除数据。
标签: ios unnotificationserviceextension