以编程方式阻止应用程序在后台iOS中运行

时间:2011-07-09 21:22:50

标签: iphone ios ipad

我有一个将在后台运行的应用程序,但有一种情况我不希望这种情况发生,我能以编程方式实现吗?

我知道我可以选择退出changing this plist,但是在运行时呢?

4 个答案:

答案 0 :(得分:7)

将变量UIApplicationExitsOnSuspend(应用程序不在后台运行)添加到应用程序plist并指定值YES。

答案 1 :(得分:6)

您可以致电exit(0)中的applicationDidEnterBackground来关闭应用。

答案 2 :(得分:5)

您不能使用exit(0)b / c apple不允许您在用户不知情的情况下关闭应用程序。

来自技术Q& A QA1561 How do I programmatically quit my iPhone application?

  

没有为优雅地终止iPhone而提供的API   应用。在iPhone OS下,   用户按Home键关闭   应用。你的申请应该   有条件,它不能   提供其预期的功能,   推荐的方法是显示一个   警告指示该用户的用户   问题的本质和可能性   用户可以采取的行动 - 转弯   在WiFi,启用位置服务,   等。允许用户终止   申请由他们自行决定。

答案 3 :(得分:-3)

不鼓励调用exit(),也不鼓励不通知用户该应用程序将要终止。因此,您需要让操作系统杀死您的应用程序(通常会在足够长的操作时间内执行)同时通知用户。实现这一目标的一种方法是,尽可能使用合法的API,尽可能多地清理内存页面(malloc和bzero),然后使用URL向一个hoggish网站调用Safari,解释应用程序将要退出的原因。 Safari将需要足够的内存来显示您的应用程序将被操作系统终止的网站,就像正确通知用户一样。

睡觉直到操作系统杀死计时器杀死你的应用程序也会杀死你的应用程序,但这种无响应的延迟会锁定用户界面,这不是一个好的用户体验。