ios - 即使在 app 为 "Deleted"之后,有没有办法跟踪耗时?

标签 ios objective-c ipad ios6

我正在开发一个应用程序(仅限 iPAD),从用户“第一次”安装应用程序开始,每 3 天(业务需求)显示一个弹出框。我正在使用 NSTimer 来做到这一点。如果用户在三天前删除应用程序并重新安装应用程序,则实现中断。在这种情况下,3 天的计数器将重新启动。我知道使用 Date 可能不是一个好主意,因为用户可以从设置中更改它。

有没有办法让 NSTimer (或类似的东西)即使在应用程序被删除后也能继续运行?

NSTimer* msgTimer = [NSTimer scheduledTimerWithTimeInterval: 259200 target: self selector: @selector(showMsg:) userInfo: nil repeats: NO];

最佳答案

我能想到的唯一方法是每次关闭应用程序时都会在钥匙串(keychain)中保存最后一次通知时间的字符串表示。删除应用程序时不会清除钥匙串(keychain)。虽然这在技术上是对钥匙串(keychain)的滥用,但它可能会起作用,我怀疑你会遇到任何商店提交问题。

每当启动应用程序时,检查它是否是自上次安装以来首次启动(将此信息保存为默认值)。如果是第一次,请检查钥匙串(keychain)时间戳,与当前时间戳进行比较,然后从那里开始。

假设用户删除了该应用程序并在第二天安装它。检查钥匙串(keychain),您会看到它在 23 小时前被删除,然后在减去 23 小时后启动计时器(因此它将在 2 天 1 小时内通知)。希望一切都说得通。

否则,如果应用程序通常连接到互联网,您可以使用某种服务器。

关于ios - 即使在 app 为 "Deleted"之后,有没有办法跟踪耗时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17999876/

相关文章:

ios - UICollectionView : does not display labels of all of its cells 出现问题

ios - 如何为 Uitextfield 设置最小和最大限制?

objective-c - @LWWFirstController 没有可见接口(interface)声明选择器 initWithStyle

ios - 现有的iOS表单框架

ios - 无法识别分析

ios - prepareForSegue 没有设置 UILabel

ios - 在不使用 uitableviewcontroller 的情况下子类化 uitableview 单元

java - 为什么 iPad 和 iPhone 拒绝套接字连接?

javascript - UIWebview内容根据webview框架

ios - 当跨任何事件导航到特定 UIViewcontroller 时,应用程序仅在 iOS 11 中崩溃