目标c - 当app在后台输入时保存完成块

时间:2016-09-26 09:42:13

标签: objective-c callback save background-process

在我的应用程序中,用户需要将一些信息保存到我的数据库中。

[myUser saveInBackground:^(BOOL success){
    if(success){
        // Do smthing
    }
    else{
        // Alert the user
    }
}];

目前它工作正常,并且在保存期间发生错误时我只能在应用程序仍处于打开状态且处于活动状态时提醒用户

让我们说对我的数据库的请求持续大约10秒(例如网络不好),并且用户决定离开应用程序,我的完成块不会被解雇。

如何在用户离开应用时提醒用户保存失败?

由于

1 个答案:

答案 0 :(得分:1)

看看Background Modes。此示例取自上述文档:

<?php

$html="<h4 style='font-family: Calibri, sans-serif;'><span lang='fi'>pitää pääosassa</span><h4>";
$html=utf8_encode($html);
echo $html;

?>

您可以在真正需要时致电- (void)yourSavingMethod { UIApplication *application = [UIApplication sharedApplication]; bgTask = [application beginBackgroundTaskWithExpirationHandler:^{ // Unfortunately, timeout.. // Clean up any unfinished task. // stopped or ending the task outright. [application endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }]; // Start the long-running task and return immediately. dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ // Save your data. [application endBackgroundTask:bgTask]; bgTask = UIBackgroundTaskInvalid; }); } 。但不要忘记结束任务。浏览文档以获取更多详细信息。