2011-12-26 140 views
4

我使用iOS SDK 5.0在Xcode 4.2上编写了一个应用程序。应用程序仍在后台运行Xcode 4.2 iOS 5

我已经将info.plist中的UIApplicationExitonsuspend设置为YES,但是当我双击主页按钮时,应用程序仍处于多任务栏中。

我已经从我的iPhone 4s中删除了该应用程序,并再次从Xcode重新发送,但暂停时退出仍然无效。应用程序仍然在多任务选项卡上。

+1

只是因为应用程序是在酒吧并不意味着它仍在运行。 'applicationWillTerminate:'被调用了吗? – 2011-12-26 15:51:22

+1

@FrederickCheung是applicationWillTerminate:被调用。如果你也可以回答我在sergio给出的答复下发表的评论,那将会有很大的帮助。谢谢! – at0m87 2011-12-26 20:58:16

回答

4

您的应用图标显示在“多任务标签”中并不意味着您的应用仍然存在。

“多任务选项卡”只显示您运行的所有应用程序的列表。

一个简单的方法来评估,如果当你触摸它的应用程序被重新推出,是通过执行以下步骤:

  1. 启动您的应用程序;

  2. 按Home键关闭它;

  3. 重新启动应用程序并检查启动时显示的图像。如果这张图片是你的“Default.png”图片,那么应用程序重新启动。如果您发现您的应用程序处于您离开它的状态,那么该应用程序会再次处于活动状态(即,它位于后台)。

更先进的方法,看看当您启动您的应用程序放在一个NSLog痕迹在你的应用程序委托方法会发生什么:

- (void)applicationDidEnterBackground:(UIApplication *)application { 
} 


- (void)applicationWillEnterForeground:(UIApplication *)application { 
} 

如果你会看到打印出来的痕迹,那么就意味着该应用程序在暂停时不会退出。

相反,你可以把一丝:

- (void)applicationWillTerminate:(UIApplication *)application { 
} 

,如果它被称为当您按下home键,然后应用程序没有进入后台状态,而它退出。

+0

好的,注意点!我试过了,就像你说的那样。感谢你指出了我。但我很困惑,为什么应用程序,即使你已经退出并不再运行,仍然徘徊在多任务选项卡上,伪装成仍在后台运行的应用程序?因为从逻辑上讲,处于多任务标签栏意味着它仍然在后台运行。因此从逻辑上看,它仍然存在,但我知道它已不再运行 - 来自调试器的证明。 – at0m87 2011-12-26 20:55:45

+0

我明白你的观点。我认为这只是苹果试图让用户感觉所有应用程序都是多任务感知的,即使它们不是。对于最终用户而言,所有帐户都更易于理解。但这只是我的猜测... – sergio 2011-12-26 21:22:59

+0

谢谢你的回应。通过说,你是说程序员绝对没有办法让他的应用程序从多任务栏中消失,因为这是苹果的方式?对不起,如果我看起来有点问题,我是一个很好奇的人=) – at0m87 2011-12-28 15:12:13

0

如果您希望您的应用程序不会在后台模式下运行。执行以下操作: - 打开您的应用程序info.plist,然后添加其他属性: - “应用程序不在后台模式下运行”,并确保为该属性选中复选框。现在保存,重新生成并再次运行您的应用程序。通过这样做你的应用程序不会在后台模式下运行。

+0

谢谢你的回答作品也是=) – at0m87 2011-12-28 15:12:49

0

“应用程序在后台模式下不运行”和“UIApplicationexitonsuspend”是相同的密钥