iPhone如何防止我的应用程序在锁定屏幕时进入后台?

iPhone如何防止我的应用程序在锁定屏幕时进入后台?,iphone,background,Iphone,Background,当按下应用程序中的锁定按钮时,系统将调用: -(void) applicationWillResignActive:(UIApplication *)application and -(void) applicationDidEnterBackground:(UIApplication *)application 那个么,我该怎么做才能使我的应用程序只重新启动,而不进入后台,并且我可以在屏幕锁定时运行计时器(计时器不能在后台模式下执行) 一种方法是将.plist中的属性“Application

当按下应用程序中的锁定按钮时,系统将调用:

-(void) applicationWillResignActive:(UIApplication *)application and
-(void) applicationDidEnterBackground:(UIApplication *)application
那个么,我该怎么做才能使我的应用程序只重新启动,而不进入后台,并且我可以在屏幕锁定时运行计时器(计时器不能在后台模式下执行)

一种方法是将.plist中的属性“Application not run in background”(应用程序不在后台运行)设置为YES(是),它工作了,但我的应用程序无法再次进入后台,但我希望它在按下home(主页)按钮时会进入后台


更新:我想在特定时间在我的应用程序中播放一些音乐,就像音乐闹钟一样,我仍然希望它在屏幕锁定时工作正常,因为保持屏幕打开可能会浪费大量电池,当用户按下home(主页)按钮并退出我的应用程序时,我不需要做任何事情。

应用程序必须具有在后台进行任何处理的特权,例如音频服务/Voip服务/位置服务

“我可以在屏幕锁定时运行计时器(计时器无法在后台模式下执行)”
你不能在后台运行一个不使用tentrum就可以继续运行的计时器。苹果不会在appstore上接受你的应用程序-如果你的目标是appstore,这是最糟糕的一面…

你不能阻止你的应用程序进入后台。这是由操作系统(iOS)决定的,不受应用程序的控制。然而,从阅读你更新的问题,我不认为这是你需要做的

您可以使用
[UIApplication beginBackgroundTaskWithExpirationHandler;]
执行后台任务(请参阅)。如果希望在某个时间间隔后发生某些事情,请查看
[UIApplication scheduleLocalNotification:]

允许在后台运行VOIP、音频和CoreLocation等服务。将这些应用程序用于非预期用途(例如,播放无声音频)可能会导致您的应用程序被拒绝

请注意,您无法阻止应用程序进入后台。只是有些任务允许在后台执行。因此,您无法执行GUI操作,NSTimer可能不会启动(至少我知道有些情况下它们不会启动)


这将有助于了解您想在后台运行什么,以便提出解决方案。

除非您在移动到后台之前播放音频,否则当应用程序移动到后台或屏幕被锁定(有一些奇怪的细节)时,您无法启动音频播放,这就好像您在后台没有实际接收到ApplicationIdentinterBackground通知一样


您最好安排一个本地通知,但在这种情况下,您的音乐限制为30秒,必须是应用程序包的一部分。

打开您的Info.plist文件,添加应用程序不会在后台运行。将值设置为“是”。

您可以查看一个教程,该教程告诉您如何阻止应用程序进入后台-谢谢,但我认为这种方法只能使系统不进入深度睡眠,但不能阻止我的应用程序进入后台。当您锁定设备时,应用程序何时进入后台??我只在用户点击主页按钮或切换应用程序时才会触发它。我真的不想让我的应用程序进入后台,但正如你所说,我能认为在我的应用程序中按下锁定按钮就像按下主页按钮一样,我的应用程序应该进入后台。实际上我不想在后台做任何事情,我想知道的是,当我的应用程序关闭屏幕时,我的应用程序能否保持在前台。