【问题标题】:Couchbase Lite stops syncing when an app resumes from background当应用程序从后台恢复时,Couchbase Lite 停止同步
【发布时间】:2013-12-29 04:54:15
【问题描述】:

试用示例 couchbase lite 示例应用程序,它运行良好,直到我通过点击主页按钮将应用程序置于后台。当我返回应用程序并进入前台时,同步停止工作并且 nsnotifications 停止触发。当couchbase lite再次进入前台时继续同步的最佳方法是什么?为什么它首先停止接收这些通知?

这是示例。

https://github.com/couchbaselabs/Grocery-Sync-iOS

- (void)updateSyncURL {
    ...

    // Tell the database to use this URL for bidirectional sync.
    // This call returns an array of the pull and push replication objects:
    NSArray* repls = [self.database replicateWithURL: newRemoteURL exclusively: YES];
    if (repls) {
        _pull = repls[0];
        _push = repls[1];
        _pull.continuous = _push.continuous = YES;
        // Observe replication progress changes, in both directions:
        NSNotificationCenter* nctr = [NSNotificationCenter defaultCenter];
        [nctr addObserver: self selector: @selector(replicationProgress:)
                     name: kCBLReplicationChangeNotification object: _pull];
        [nctr addObserver: self selector: @selector(replicationProgress:)
                     name: kCBLReplicationChangeNotification object: _push];
    }
}

我是否应该在应用程序上设置一个观察者将进入前台并再次运行 updateSyncURL?如果是这样,最好的做法是仅在应用程序进入后台时添加该观察者并在它进入前台后删除?还是从效率/最佳实践的角度来看这无关紧要?

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateSyncURL) name:UIApplicationDidBecomeActiveNotification object:[UIApplication sharedApplication]];

【问题讨论】:

    标签: ios7 couchbase nsnotificationcenter couchbase-lite


    【解决方案1】:

    看起来如果我将复制设置为“持久”,它会在应用后台恢复

    例如

    _pull.persistent = YES;
    

    【讨论】:

      【解决方案2】:

      我从应用程序中调用它:didFinishLaunchingWithOptions。对我的应用程序的快速测试表明,它在进入主屏幕并返回后成功复制。

      【讨论】:

      • 您的意思是在 DemoAppDelegate 中?我只是尝试测试它并没有用。我正在 ios 7 模拟器和 5s 上进行测试。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-03
      • 2018-06-20
      相关资源
      最近更新 更多