2013-11-23 36 views
3

我有一個本地通知,每分鐘啓動一次。其起火日期&其他數據正在進入本地數據庫。我使用通知代理方法通知給我通知活動&背景模式。如何在本地通知到達時更新數據庫BackgroundMode?

當通知火然後更新sqlite數據庫每個通知(每分鐘)。當通知觸發它的更新sqlite數據庫在應用程序活動狀態。這是狀態工作完成。

我的代碼就像

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

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

} 

但我的問題是,當應用程序進入後臺模式,那麼數據庫沒有更新僅已收到通知。

如何更新我的數據庫在每次通知着火時都處於後臺模式(或任何狀態)?

回答

1

這裏是一個交待任務在後臺/暫停模式的apple site ..

(推薦)註冊該報告系統改變你的應用程序需要的任何通知。當應用程序被掛起時,系統會對關鍵通知進行排隊,並在應用程序恢復執行時將其傳遞。應用應該使用這些通知來平滑過渡回執行。欲瞭解更多信息,請參閱「在喚醒時間處理排隊的通知」。

因此,如果應用程序是排隊時相比,應用啓動下一次你可以訪問此通知數據的通知。
所以,你應該做的是什麼的..

  1. 當你的應用程序開始檢查,如果有任何通知。
  2. 如果根據通知

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"); 
} 

我認爲這將做的工作......

+0

檢查我的答案我已經更新了它... – Dilip

+0

+1感謝您的重播 – Rain

相關問題