如何防止我的应用程序在iPhone上的后台运行

时间:2010-07-11 09:00:18

标签: iphone

当按下主页按钮时,有没有办法让应用程序退出而不是进入后台?出于安全原因,如果应用程序不在后台运行但在推送主页时实际关闭会更好。这对于用户的安全性而言,而是针对应用上的公司数据,因此不是用户的选择。除了强行退出之外,我找不到任何办法退出,苹果不鼓励。

3 个答案:

答案 0 :(得分:8)

请参阅iphone应用程序编程指南中的opting out of background execution

  

“如果您不希望应用程序在退出时保留在后台,则可以通过将UIApplicationExitsOnSuspend键添加到应用程序的Info.plist文件并将其值设置为YES来明确选择退出后台执行模型。

     

当应用程序选择退出时,它会在非运行状态,非活动状态和活动状态之间循环,并且永远不会进入后台或暂停状态。

     

当用户点击Home按钮退出应用程序时,将调用应用程序委托的applicationWillTerminate:方法,并且应用程序有大约五秒钟的时间来清理并退出,然后终止并返回到未运行状态。 “

答案 1 :(得分:2)

只需转到项目的info.plist,然后选中“应用程序不在后台运行”即可。

答案 2 :(得分:0)

不幸的是,在尝试了所有内容之后,我仍然无法看到我的应用程序退出按下主页按钮。它总是进入后台,即使UIApplicationExitsOnSuspend为YES并且在plist文件中的类型为boolean,我从Simulator中删除了应用程序,重新启动了Xcode和Simulator并尝试了所有建议。

最后我开始调试应用程序,发现一个阻止应用程序退出的函数。该功能相当简单,从网络下载一些图像,并从appDleFinishLaunching appDelegate文件调用。这个函数委托创建网络连接和下载数据到任何其他可重用的类的任务,我有以下代码:

if(isBackgroundProcessingSupported){
        appDelegate.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{}];
        [NSURLConnection connectionWithRequest:request delegate:self];
    }

所以最后结果是上面的代码负责按下主页按钮将应用程序放到后台。当我评论上面的代码时,我的应用程序正在退出而不是进入后台。

注意:之前的代码是由于最初的应用程序支持后台处理。

希望这有助于那些也在努力找到像我这样的理由的人。