作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个应用程序(仅限 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/
我是一名优秀的程序员,十分优秀!