ios - 如何检查应用程序是否在前台但在特定时间未访问 - iOS

标签 ios swift foreground background-foreground

我正在使用 http 请求在 Swift 2.0 中开发一个应用程序。我正在将校验和值传递给请求。一旦用户登录,此校验和由 Web 服务器生成。一旦 3 小时未使用,校验和值将刷新。由于校验和值的变化,我遇到了一个问题。问题是, session 已过期,用户需要重新登录才能使用该应用程序。

当应用程序进入后台(最小化)并重新打开时,我在 applicationDidBecomeActive 方法中重新生成校验和。我使用 applicationDidEnterBackground 记下时间。如果记录的时间超过 3 小时,那么我将重新生成校验和值。在这种情况下它工作正常。

当应用程序处于前台并且超过 3 小时未访问(应用程序是理想的)时,就会出现问题。

在这种情况下,我应该在哪里重新生成校验和?是否有任何 AppDelegate 方法可用于此?

最佳答案

如果应用程序在前台模式下最长时间没有导航其他页面, View 生命周期中没有调用的方法。所以设置计时器可以解决您的问题并提示用户“ session 已过期”警报,当用户点击它时,只需点击 Web API 并相应地刷新 UI。

谢谢。

关于ios - 如何检查应用程序是否在前台但在特定时间未访问 - iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35744179/

相关文章:

ios - 3rd 方框架 swift 文件中的编译器错误

ios - 扩展中的声明无法覆盖 Swift 4 中的错误

Swift Casting 未按预期工作

CSS - 背景前景对比文字颜色

ios - 如何在 tableView (Swift) 中删除行后立即选择另一行

ios - 复制应用程序文件夹后无法启动 Xcode 6.1.1

ios - dispatch_async 处理事件

eclipse - 如何在 Eclipse 中更改 javadoc View 字体颜色?

android - 如何获得 Activity 在 Android 的前台 Activity 的时间

objective-c - AVAudioPlayer - 你必须创建一个属性才能让它工作吗? (X代码)