【发布时间】:2015-07-20 11:08:29
【问题描述】:
我对 iOS 很陌生,我想从 iOS App 中的服务器下载数据库。当我在模拟器中从 Xcode 运行应用程序时,它第一次完美运行。
下载完成后,我按command+shift+H打开主屏幕,因为没有主页/返回按钮在模拟器中。我再次打开应用程序,但这次没有下载数据库。
我将下载代码保存在viewWillAppear 和viewDidLoad 中,并同时下载数据库两次。
我的目的是在用户恢复/重新启动应用程序时下载文件。我在 android 中做过同样的事情,其中onResume/onPause/onRestart 方法可用。我也想在 iOS 上实现同样的目标。
一个疑问......
- 如何在 iOS 模拟器中按下返回键?
我认为后退按钮从开始(至少在 android 中)而不是主页按钮启动应用程序。如何在 iOS 模拟器中进行测试。
【问题讨论】:
-
我想建议一种替代解决方案,因为您所说的那个听起来很糟糕。为什么不在用户打开应用程序时下载数据库并缓存该数据,存储上次下载的数据。每次进行更改时,都会在数据库中添加最后更新字段。因此,当用户重新启动应用程序时,您可以根据数据库检查本地存储的数据,如果数据库中的最后一次更新是在本地最后一次更新之后,则下载新数据。这将节省网络使用量,总体上提供更好的用户体验,因为它会更快。
-
另外,我可能会在某个地方的应用程序委托中使用它来检查应用程序何时启动,而不是在
viewWillAppear和/或viewDidLoad中。可能在application:didFinishLaunchingWithOptions: -
我计划做同样的事情......但现在我只想测试应用程序在恢复或重新启动时是否下载数据......应用程序:didFinishLaunchingWithOptions 当用户调用它时关闭应用程序并再次重新启动或恢复它。
-
这完全取决于您如何完成您的应用程序。如果你已经这样做了,它永远不会在后台运行,并且总是像一个新实例一样启动,那么是的,
application:didFinishLaunchingWithOptions总是会被调用。但是,如果您的应用可以进入后台模式并从关闭的位置启动,那么并不总是会调用它,您需要查看applicationDidBecomeActive:之类的内容,以便在它激活时捕获它。
标签: ios objective-c iphone