我是iOS开发公司的新手,所以请原谅我提前问了这个问题。
我试图通过API发布一些数据(比如30分钟之后),当应用程序处于前台或后台时,我能够做到这一点,但即使在应用程序被终止时,也有可能做到这一点吗?在应用程序处于后台时,我可以通过这段代码执行此活动
UIApplication *app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier bgTask;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
}];但一旦应用程序被终止,一切都会停止。我发现iOS应用程序的线程在终止3分钟后就会被杀死。
间隔后呈现UIView
如果以上是可能的,那么是否有可能在一个特定的时间后将一个特定的UIView动画显示在屏幕上,即使应用程序被终止了。提前谢谢。
发布于 2016-12-15 22:14:02
当应用程序终止时,它不能执行任何代码;如果调用应用程序在applicationWillTerminate中终止,您可以执行一些代码。在很多情况下不会是这样。
在iOS上,如果应用程序被挂起,则不能在特定时间或间隔之后执行代码。
您可以安排本地通知,以提示用户返回应用程序,但如果用户不点击通知或从其图标启动应用程序,则无法执行任何代码。
发布于 2016-12-15 20:06:52
请看一下UIApplicationDelegate协议这里的这里方法。一旦系统决定关闭您的应用程序,这个方法就会被调用,这样您就可以在应用程序完成之前完成所有需要做的事情。这可能是根据您的需要将API数据发布到服务器。
请注意,根据文档,在用户按home按钮时,不能保证调用此方法,但只有当系统决定关闭应用程序时,才会调用该方法:
对于支持后台执行的应用程序,当用户退出应用程序时,通常不会调用此方法,因为在这种情况下,应用程序只是移动到后台。
如果您不知道Cocoa编程中Delegates的概念,可以将它们看作应用程序的一个实例对象( MVC设计模式中的控制器)与应用程序本身之间的特殊连接。如果有什么有趣的事情发生,比如应用程序启动或关闭,应用程序会告诉你的控制器。注意:这也适用于macOS编程。
https://stackoverflow.com/questions/41172263
复制相似问题