incubator-callback-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From shaz...@apache.org
Subject ios commit: Fixes CB-684 - Not enough time for background execution of WebSQL/LocalStorage backup (when app goes to the background)
Date Sat, 12 May 2012 01:09:14 GMT
Updated Branches:
  refs/heads/master a27f4b374 -> d3ac2aaa2


Fixes CB-684 - Not enough time for background execution of WebSQL/LocalStorage backup (when
app goes to the background)


Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/commit/d3ac2aaa
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/tree/d3ac2aaa
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/diff/d3ac2aaa

Branch: refs/heads/master
Commit: d3ac2aaa257aaf369f59bfecc53473578bc276a6
Parents: a27f4b3
Author: Shazron Abdullah <shazron@apache.org>
Authored: Fri May 11 18:09:03 2012 -0700
Committer: Shazron Abdullah <shazron@apache.org>
Committed: Fri May 11 18:09:03 2012 -0700

----------------------------------------------------------------------
 CordovaLib/Classes/CDVLocalStorage.m |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cordova-ios/blob/d3ac2aaa/CordovaLib/Classes/CDVLocalStorage.m
----------------------------------------------------------------------
diff --git a/CordovaLib/Classes/CDVLocalStorage.m b/CordovaLib/Classes/CDVLocalStorage.m
index 0fe9dc6..05ab034 100644
--- a/CordovaLib/Classes/CDVLocalStorage.m
+++ b/CordovaLib/Classes/CDVLocalStorage.m
@@ -293,12 +293,27 @@
 
 - (void) onResignActive
 {
-    [self backup:nil withDict:nil];    
+    if ([[UIDevice currentDevice] isMultitaskingSupported]) 
+    {
+        __block UIBackgroundTaskIdentifier backgroundTaskID = UIBackgroundTaskInvalid;
+        
+        backgroundTaskID = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
+            NSLog(@"Background task to backup WebSQL/LocalStorage expired.");
+        }];
+        
+        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
+            
+            [self backup:nil withDict:nil];
+            
+            [[UIApplication sharedApplication] endBackgroundTask: backgroundTaskID];
+            backgroundTaskID = UIBackgroundTaskInvalid;
+        });
+    }
 }
 
 - (void) onAppTerminate
 {
-    [self backup:nil withDict:nil];    
+    [self onResignActive];    
 }
 
 #pragma mark -


Mime
View raw message