我有一个本地通知,每分钟都会触发。它的开火日期&其他数据正在进入本地数据库。我使用通知委托方法进行通知,它给我通知Active&背景模式。
当Notification fire然后每次通知(每分钟)更新sqlite数据库。当通知触发它的更新sqlite数据库在应用程序活动状态。那状态是完成的。
我的代码
-(void)application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification {
// I recieved a notification
if (notification) {
[Update DataBase Method];
}
}
但我的问题是,当应用程序进入后台模式,然后数据库不仅仅更新已接收的通知。
如何更新我的数据库,它会在每次通知火灾时进入后台模式(或任何状态)?
答案 0 :(得分:1)
以下是以{background / suspend模式解释任务的apple site ..
(推荐)注册报告系统更改您的应用所需的任何通知。当应用程序挂起时,系统会对关键通知进行排队,并在应用程序恢复执行时将其传递。应用应使用这些通知来平稳过渡回执行。有关详细信息,请参阅“在唤醒时处理排队通知。”
因此,如果应用正在对通知进行排队,那么当您的应用下次打开时,您可以访问此通知数据 所以你应该做的是......
从applicationDidBecomeActive
方法执行数据库更新任务。只要您的应用激活,就会调用applicationDidBecomeActive
方法。
- (void)applicationDidBecomeActive:(UIApplication *)application
{
// Restart any tasks that were paused (or not yet started) while the application was inactive.
//If the application was previously in the background, optionally refresh the user interface.
NSLog(@"Dilip applicationDidBecomeActive");
}
我认为这将完成工作......