2012-04-05 62 views
0

当我将应用程序保持打开一段时间时,iPhone/iPod锁定屏幕。当我解锁它时,我的应用程序被卡住了2秒,然后它恢复正常并继续运行。为什么是这样 ?我如何防止它?解锁屏幕后iPhone应用程序卡住

为了防止这种情况hapenning有任何PLIST方法,其中,当它进入一个锁定的屏幕,我们可以停止应用程序的过程中(可能不是一个好主意)

+0

你有没有发现任何东西?这种情况也发生在我身上...... – 2017-06-19 13:42:30

+0

我不认为我记得这个解决方案,因为我在5年前发布了这个解决方案。但是,我认为这是由于内存问题。 'applicationDidReceiveMemoryWarning'方法可以帮助你验证它的内存问题。同样@Alex声称你可以转到'Product> Profile> Leaks'来跟踪内存泄漏。 – Illep 2017-06-20 05:42:47

回答

0

我不太肯定的回答你的第一个问题(你可能会在applicationDidBecomeActive方法中做一些沉重的事情,或者应用程序简单地重新分配内存),但我可以回答第二个问题。

你可以简单地通过调用阻止自动锁定:
[[UIApplication sharedApplication] setIdleTimerDisabled: YES];
好。安迪因为这是应用程序委托的applicationDidFinishLaunching方法中。

+0

我应该在哪里添加?苹果是否鼓励在闲置状态下杀死应用程序? – Illep 2012-04-05 17:54:40

+0

最好的地方是应用程序委托的applicationDidFinishLaunching方法。用那个更新了答案。 是的,iOS在需要资源时会杀死某些应用程序。 – yinkou 2012-04-05 17:58:00

0

在您的应用程序委托中您是否有任何代码可能会减慢您的应用程序?检查以下方法?

  • - (无效)applicationWillResignActive:(UIApplication的*)应用
  • - (无效)applicationDidBecomeActive:(UIApplication的*)应用
  • - (无效)applicationDidEnterBackground:(UIApplication的*)应用
  • - (无效)applicationWillEnterForeground:(UIApplication的*)应用
  • - (空)applicationWillTerminate:(UIApplication的*)应用

还使用上述方法确保您的应用程序正常挂起。当你的应用程序内接收内存警告

登录:

-(void) applicationDidReceiveMemoryWarning:(UIApplication *)application 

也许当你暂停或重新打开您的应用中的一些是有记忆的问题。

+0

我在这些方法中没有任何东西。我怎么能正常暂停应用程序?我怎么能在'applicationDidReceiveMemoryWarning'方法中打印内存警告? – Illep 2012-04-05 18:07:17

+0

在applicationDidReceiveMemoryWarning中,只需说NSLog(@“收到内存警告”)。使用产品>配置文件>泄漏来运行您的应用程序来跟踪内存泄漏。 – 2012-04-05 18:58:15