在applicationDidEnterBackground中保存到Parse.com数据库

时间:2015-06-17 16:31:39

标签: ios objective-c parse-platform

我正在使用Parse.com作为我的后端,并希望在应用程序进入后台时更新数据库中的内容(徽章计数)。我在下面使用此代码。据我所知,这只允许五秒的操作时间。有没有办法延长这段时间?

- (void)applicationDidEnterBackground:(UIApplication *)application {

    PFInstallation *currentInstallation = [PFInstallation currentInstallation];
    curentInstallation.badge = self.messageCount;
    currentInstallation.badge = 0;
    [currentInstallation saveEventually];

}

我还读过:如果您的应用程序支持后台执行,则调用此方法而不是applicationWillTerminate:当用户退出时。通过支持后台执行,这意味着在Plist中启用了值并且用户是允许后台执行还是引用不进行后台处理的旧版iOS?对此的任何指示都会很棒。感谢

1 个答案:

答案 0 :(得分:1)

你应该看看:

https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

示例代码显示了如何创建后台任务。在那里你可以使用普通的Parse API和回调。在此回调中,您必须调用

[application endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;

让你知道,当你完成。

您还应该使用backgroundTimeRemaining并安排计时器点火事件,然后再没有时间,并确保拨打saveEventually,因此解析可以(在这种情况下)至少在用户下次打开您的应用时保存更改!