Ami*_*wal 8 iphone objective-c uiapplication
什么是UIApplicationDidEnterBackgroundNotificationiPhone应用程序的使用或我们如何从中获益
Ode*_*Dov 26
此通知表示用户在iPhone 4上"退出"您的应用程序 - 当电话或短信进来并且用户接受中断(回答/回复)或用户按下主页按钮时会发生这种情况.
我在SO上找到了这个链接,显示了所有州之间的互动,以及相应的通知:http: //www.drobnik.com/touch/2010/07/understanding-ios-4-backgrounding-and-delegate-messaging/
要使用此通知,您可以将@Dntwan建议实现applicationDidEnterBackground(在您的UIApplicationDelegate类中 - 这是主类).
或者,您可以在代码中的任何位置设置通知处理程序:
[[NSNotificationCenter defaultCenter] addObserver: self
selector: @selector(handleEnteredBackground:)
name: UIApplicationDidEnterBackgroundNotification
object: nil];
Run Code Online (Sandbox Code Playgroud)
祝好运!
俄德.
来自苹果文档。
\n\n告诉委托人应用程序现在处于后台。
\n\n- (void)applicationDidEnterBackground:(UIApplication *)application\nRun Code Online (Sandbox Code Playgroud)\n\n参数\napplication\n单例应用程序实例。
\n\n讨论applicationWillTerminate:\n在 iOS 4.0 及更高版本中,当用户退出支持后台执行的应用程序时,将调用此方法而不是 方法。您应该使用此方法来释放共享资源,保存用户数据,使计时器无效,并存储足够的应用程序状态信息,以便将应用程序恢复到当前状态,以防应用程序稍后终止。您还应该禁用对应用程序\xe2\x80\x99s 用户界面的更新,并避免使用某些类型的共享系统资源(例如用户\xe2\x80\x99s 联系人数据库)。您还必须避免在后台使用 OpenGL ES。
此方法的实现大约有五秒钟的时间来执行任何任务并返回。如果您需要额外的时间来执行任何最终任务,您可以通过调用 向系统请求额外的执行时间beginBackgroundTaskWithExpirationHandler:。实际上,您应该从applicationDidEnterBackground:实际上,您应该尽快如果该方法在时间耗尽之前没有返回,您的应用程序将被终止并从内存中清除。
您应该在此方法退出之前执行与调整用户界面相关的任何任务,但其他任务(例如保存状态)应根据需要移至并发调度队列或辅助线程。因为您启动的任何后台任务可能applicationDidEnterBackground:只有在该方法退出后才会运行,所以您应该在启动这些任务之前请求额外的后台执行时间。换句话说,首先调用beginBackgroundTaskWithExpirationHandler:然后在调度队列或辅助线程上运行任务。
该应用程序还发布了UIApplicationDidEnterBackgroundNotification在调用此方法的同时发布通知,让感兴趣的对象有机会响应转换。
| 归档时间: |
|
| 查看次数: |
21911 次 |
| 最近记录: |