如何在本地通知到达时更新数据库BackgroundMode?

时间:2013-11-23 17:40:14

标签: ios iphone sqlite uilocalnotification

我有一个本地通知,每分钟都会触发。它的开火日期&其他数据正在进入本地数据库。我使用通知委托方法进行通知,它给我通知Active&背景模式。

当Notification fire然后每次通知(每分钟)更新sqlite数据库。当通知触发它的更新sqlite数据库在应用程序活动状态。那状态是完成的。

我的代码

-(void)application:(UIApplication *)application 
didReceiveLocalNotification:(UILocalNotification *)notification {

    // I recieved a notification
    if (notification) {
        [Update DataBase Method];   
     }

}

但我的问题是,当应用程序进入后台模式,然后数据库不仅仅更新已接收的通知。

如何更新我的数据库,它会在每次通知火灾时进入后台模式(或任何状态)?

1 个答案:

答案 0 :(得分:1)

以下是以{background / suspend模式解释任务的apple site ..

  

(推荐)注册报告系统更改您的应用所需的任何通知。当应用程序挂起时,系统会对关键通知进行排队,并在应用程序恢复执行时将其传递。应用应使用这些通知来平稳过渡回执行。有关详细信息,请参阅“在唤醒时处理排队通知。”

因此,如果应用正在对通知进行排队,那么当您的应用下次打开时,您可以访问此通知数据 所以你应该做的是......

  1. 当您的应用开始检查是否有任何通知时。
  2. 如果根据通知数据进行数据库操作
  3. 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");
    }
    

    我认为这将完成工作......