终止在后台运行的应用程序

时间:2013-05-31 23:52:31

标签: ios

我目前正在开发一款应用程序,需要在后台运行超过五分钟后终止。为了做到这一点,我必须在按下Home按钮之后在后台运行一个计时器,或者在短信或电话呼叫中断的情况下,然后,在五分钟之后{{1} }方法将被调用。我的第一个问题是,我应该将applicationWillTerminate放在applicationWillTerminate方法还是applicationWillResignActive方法中?我的第二个问题是,因为这是一个包含更多视图的应用程序,我应该在applicationDidEnterBackground类或其他地方编写这些内容吗?感谢您的回复。

2 个答案:

答案 0 :(得分:2)

1)您无法强制您的应用以编程方式完成。

2)你永远不应该自己调用这些AppDelegate方法。它们意味着被系统称为

参考:UIApplicationDelegate Protocol Reference

答案 1 :(得分:0)

这是非常少数民族聚居的地方,但你可以做的就是让你的应用程序在你希望它退出时崩溃,并且它会自动关闭,因为它没有关闭应用程序,但只要你是这样就没有真正的伤害控制它如何崩溃试图去寻找一个糟糕的访问错误,也就是试图访问已被解除分配的东西

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

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

用于接收应用外部活动的代码

[[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

将启动事件跟踪,回拨为:

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

但你必须记得

[self becomeFirstResponder];

这告诉设备哪个视图控制器去事件跟踪,哦,不要忘记辞职第一响应者,并且endReceivingRemotecontrolEvents