- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我的 iOS 应用有一个要求,如果您暂停该应用一段时间(比如一个小时),我们希望该应用返回不是您之前所在的位置,但是到主屏幕。这个想法是你深入到应用程序中,查找一些东西,然后忘记它。一个小时后,当您再次需要该应用时,您之前所做的一切都无关紧要,我们只想在主屏幕上再次自动启动。
我已经用 DidEnterBackground
和 WillEnterForeground
实现了它,它几乎完美地工作。当应用程序进入后台时,我会写一个时间戳。当它恢复时,我将时间戳与当前时间进行比较,如果大于 1 小时窗口,我将所有内容从 ViewController 堆栈中弹出,并设置 animation=false,然后我们就回家了。
这适用于 iPad 和所有模拟器,但在我的 iPhone 上,它会在回家前显示前一屏幕几分之一秒,即使 WillEnterForeground
出现在它应该可见之前,它在没有动画的情况下从堆栈中弹出,所以不应该是可见的。这是怎么回事?
最佳答案
这是因为 iOS 会在您的应用程序后台运行之前故意拍摄窗口快照,然后在恢复时显示它,以给人一种更快捷的界面印象。来自 Apple 的文档 here :
When an app transitions to the background, the system takes a snapshot of the app’s main window, which it then presents briefly when transitioning your app back to the foreground. Before returning from your applicationDidEnterBackground: method, you should hide or obscure passwords and other sensitive personal information that might be captured as part of the snapshot.
所以答案是删除或以某种方式清空 applicationDidEnterBackground
中的 View (例如,将 Root View 的 alpha 设置为 0.0),这样您就可以决定是否应该再次显示它.
关于iphone - WillEnterForeground 是否工作不正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17094853/
我以为我的应用几乎可以发布了,但这件事让我抓狂! 在我的 didEnterBackground 处理程序中,我保存了一些图像以缓存并转储我可能想到的所有内容,操作系统似乎随机转储我的应用程序并重新启动
我的 iOS 应用有一个要求,如果您暂停该应用一段时间(比如一个小时),我们希望该应用返回不是您之前所在的位置,但是到主屏幕。这个想法是你深入到应用程序中,查找一些东西,然后忘记它。一个小时后,当您再
我有一个显示倒计时和观察者的 UIlabel: NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("w
如果我的应用程序被置于后台(有人单击主页按钮),然后重新打开,我想在我的 ViewController 中运行一个函数,并且我已经能够使用 willEnterForeground() 函数获得它,但我
我的主 UITableView 类中有一个 -(void) 方法,我用它来刷新数据。它有点复杂,所以我不打算在这里发布它,但它也是在 viewWillAppear 期间调用的,所以每次出现 table
我正在将在 Xamarin.iOS 中编写的应用程序重写为 Xamarin.Forms,并且我曾经有一些代码要在 DidEnterBackground 和 WillEnterForeground 上执
我是一名优秀的程序员,十分优秀!