2012-02-14 119 views
0

我在我的应用程序中使用了推送通知。我有这方面的两个问题:在推送通知期间启动待机应用程序

  1. 我的应用程序并不会自动启动,当手机处于待机模式,它接收推notification.Contradiction是,当在待机和快速应用程序通过交换它解锁启动应用程序,但当我换了2-3分钟后说,然后应用程序不会自动启动。如何让每次都可以发布?

  2. 我想在推送通知期间增加振动时间。目前它几乎不会振动1秒。

回答

0

1)睡眠/待机的概念不是太棘手;当用户“退出”你的应用程序时(按回家按钮),你的应用程序将被暂停并置于冻结状态(4.x),或完全退出(3.x)。尽管如此,在后者发生在- (void)applicationWillTerminate:(UIApplication *)application方法之前,并且在- (void)applicationDidEnterBackground:(UIApplication *)application方法发生前(都在您的委托类中被调用)之前,您有机会做一些清理操作。 “睡眠”的概念意味着在iPhone OS 3和iOS 4中,当您的应用程序失去焦点时(以及进入短信或警报等时),您将收到以下方法:

- (void)applicationWillResignActive:(UIApplication *)application

真的,大多数应用程序(除了设计为在后台工作的应用程序,例如voip,音频流等)都可以简单地关闭。但是,如果您需要,也可以暂停应用程序的冻结并要求更多时间来完成任务。

2)您无法使用官方API更改振动持续时间。

您可以多次拨打AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);进行循环或使用NSTimer,但不建议这样做。它会排出电池,设备可能会从桌面上掉下来。顺便说一下,如果Apple认为您没有正确使用振动,Apple可能会拒绝您的应用。

+0

感谢您的回答。请回答第1点的问题,我该如何请求更多时间来完成任务?此外,应用程序可能会收到通知,无论何时该应用程序进入后台,所以如果我要求更多的时间,然后我要求多少时间...因为它是我不知道的。 – 2012-02-14 06:42:34

+0

苹果文档说,应用程序退出后的用户,该应用程序被给予10分钟来完成任何待处理的任务。之后,所有资源将暂停该应用程序。检查这里更多 - http://stackoverflow.com/questions/8861390/ios-background-downloads-when-the-app-is-not-active – 2012-02-14 06:50:20

+0

好吧,但我只是想知道我可以让我的应用程序启动在推送通知的每种情况下(即立即扫描屏幕并在通知一段时间后扫描屏幕)。我的应用程序只是关于“做些什么任务的时间”(这个任务在本地配置为闹钟,我使用推送通知aa闹钟).....请帮助 – 2012-02-15 05:55:36