首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在iOS中注册提醒app指定时间的事件

如何在iOS中注册提醒app指定时间的事件
EN

Stack Overflow用户
提问于 2013-11-12 23:09:16
回答 4查看 2.5K关注 0票数 4

我有要求启动同步在每晚凌晨1点或每2周。我将如何在iOS中实现这一点?在iOS中,有没有一种方法可以让我的应用程序在这个时候提醒我,我的应用程序应该在提到的那个特定时间提醒我。

EN

回答 4

Stack Overflow用户

发布于 2013-11-13 23:36:13

Background Fetch是操作系统(iOS 7 provided )为在后台请求执行操作的应用程序提供的机会,但时间由操作系统决定。在了解用户对应用程序的使用后,操作系统将在后台静默唤醒您的应用程序(实际上是一个处理程序方法)。

功能用法:到目前为止,这个功能已经在iOS7中引入,以增强社交媒体、报纸等日常/频繁/大量内容刷新应用程序的可用性。

备注-这只是一个不能保证得到满足的请求,而是底层操作系统改善用户体验的一种尝试)

从编码/实现的角度来看,主要有2-3个关键步骤-

A)打开Background Fetch属性的Background Modes (选择应用目标>功能>后台模式>后台获取)

B)实现此应用程序委托方法-

代码语言:javascript
复制
- (void)application:(UIApplication *)application performFetchWithCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0);

C)定义您的获取间隔,通常是在应用程序启动时-即appDidFinishLaunchingWithOptions

代码语言:javascript
复制
[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum];

由于它是由操作系统自动触发的事件,如何在开发过程中测试此行为-

您可以使用菜单调试>模拟后台抓取,通过XCode 5+在应用程序中模拟/测试后台抓取行为

以下是带有示例项目的教程的link

此外,你还可以从苹果公司的WWDC2013视频网站- What's New with Multitasking上查看session 204

编辑-

截至今天(iOS 7.0.3),在缺乏适当的官方文档的情况下,实际使用情况表明-

  1. 强制执行minimumBackgroundFetchInterval的时间在5到15分钟之间(如果设备锁定,则不会发生任何小于此时间的操作。
  2. 用户解锁设备后,会立即触发后台提取。

然而,在即将到来的版本中,我觉得这一功能将得到增强,并给予开发人员/用户更多的权力。

票数 3
EN

Stack Overflow用户

发布于 2013-11-12 23:41:30

您可以使用NSLocalNotification。请参见示例(取自here):

代码语言:javascript
复制
UILocalNotification *notification = [[UILocalNotification alloc] init];

// Activate in 5 segundos
notification.fireDate = [[NSDate alloc] initWithTimeIntervalSinceNow:5];

// message to show 
notification.alertBody = self.nameTextField.text;

// default sound
notification.soundName = UILocalNotificationDefaultSoundName;

// button title
notification.alertAction = @"Ahora te lo cuento";
notification.hasAction = YES;

// activa la notificación
[[UIApplication sharedApplication] scheduleLocalNotification:notification];

关键是,当本地通知触发时,行为取决于应用程序状态。如果应用程序在前台运行,您可以静默处理通知。但是,如果应用程序没有运行,或者它在后台,则需要用户交互。

票数 1
EN

Stack Overflow用户

发布于 2013-11-26 04:29:31

你可能想尝试苹果推送通知和后台传输服务的组合。如果你观看了阿肖克提到的WWDC 2013视频,他们在视频中提到了让静默推送通知唤醒应用程序,然后让你配置后台传输。

你可以注册你的应用程序来发送推送通知,让你的服务器向苹果发送通知请求,然后当收到推送通知时,你的应用程序会从后台唤醒,你可以使用NSURLSession配置下载/上传,然后启动会话。当数据传输完成后,运行任何你需要的代码来同步你的应用程序,然后通知操作系统你的后台传输已经完成,这样它就可以让你的应用程序重新进入睡眠状态。

请注意,时间仍然不在您的控制之下,但这是我所能看到的最接近为您的问题创建解决方案的时间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19932742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档