0

我目前正在开发一个应用程序,该应用程序在后台运行超过五分钟后需要终止。为了做到这一点,我必须在按下主页按钮后在后台运行一个计时器,或者在短信或电话等中断的情况下,然后在五分钟后调用该applicationWillTerminate方法. 我的第一个问题是我应该把它applicationWillTerminate放在applicationWillResignActive方法中还是applicationDidEnterBackground方法中?我的第二个问题是,由于这是一个具有多个视图的应用程序,我应该在AppDelegate课堂上还是在其他地方写这些东西?谢谢您的答复。

4

2 回答 2

2

1)您不能强制您的应用程序以编程方式完成。

2) 你不应该自己调用这些 AppDelegate 方法。它们 只能由系统调用。

参考:UIApplicationDelegate 协议参考

于 2013-05-31T23:58:54.970 回答
0

这是一个非常贫民区,但是你可以做的是让你的应用程序在你想要它退出时崩溃,它会自动关闭,当然这不是关闭应用程序,但只要你能控制它就没有真正的伤害它是如何崩溃的 尝试出现错误的访问错误,也就是尝试访问已被释放的东西

至于在后台运行计时器,我不知道你是否可以这样做,但作为替代方案,你可以节省他们离开应用程序的时间,也就是应用程序进入后台,然后你可以拥有所有事件返回到作为第一响应者的视图控制器的应用程序,并且每个 UIEvent 都有一个时间戳,无论它是哪个事件,您都可以比较时间戳并查看它是否大于 5 分钟

无论如何我不建议上述任何一项,但这是我能为您的问题提出的最佳答案

用于在您的应用程序之外接收事件的代码

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

将启动事件跟踪,回调是:

- (void)remoteControlReceivedWithEvent:(UIEvent *)event { }

但你必须记住

[self becomeFirstResponder];

这告诉设备去哪个视图控制器进行事件跟踪,哦,别忘了让第一响应者辞职,以及 endReceivingRemotecontrolEvents

于 2013-06-01T00:34:34.407 回答