인터페이스 SubscriptionSet

  • 모든 슈퍼인터페이스:
    Iterable<Subscription>
    알려진 모든 하위 인터페이스:
    MutableSubscriptionSet

    public interface SubscriptionSet
    extends Iterable<Subscription>
    구독 세트는 유연한 동기화를 위해 구성된 특정 Realm에 대한 모든 현재 Subscription를 변경할 수 없는 보기입니다.

    Flexible Sync는 RealmQuery를 사용하여 기기와 동기화할 데이터를 정의하는 방법입니다. 쿼리와 해당 메타데이터는 Subscription 로 표시됩니다.

    따라서 구독 세트는 장치에서 사용할 수 있고 서버와 동기화되는 모든 데이터를 정의합니다. 유효하지 않은 쿼리를 포함하는 등 구독 세트에 오류가 발생하면 전체 구독 세트가 SubscriptionSet.State.ERROR 상태가 되며 오류가 수정될 때까지 동기화가 발생하지 않습니다.

    구독이 제거되면 해당 데이터도 제거되지만 장치에서만 제거됩니다. 서버에서 삭제되지 않습니다.

    오프라인 상태에서도 구독 세트를 수정할 수 있지만 getState()SubscriptionSet.State.COMPLETE 를 반환하기 전에 서버에서 수정을 수락하지 않습니다.

    waitForSynchronization() 및 해당 변형을 사용하여 구독 세트를 서버와 동기화하도록 강제할 수 있습니다.

    • 메서드 세부 정보

      • 찾기

        @Nullable
        구독 찾기(RealmQuery 쿼리)
        지정된 쿼리가 포함된 첫 번째 구독을 찾습니다. 여러 개의 명명된 구독에 동일한 쿼리가 포함될 수 있습니다.
        매개변수:
        query - 검색할 쿼리입니다.
        반환합니다:
        쿼리가 포함된 첫 번째 구독이거나 일치하는 항목이 없는 경우 null 입니다.
      • 찾기

        @Nullable
        구독 찾기(문자열 이름)
        지정된 이름의 구독을 찾습니다.
        매개변수:
        name - 검색할 구독의 이름입니다.
        반환합니다:
        일치하는 구독 또는 해당 이름의 구독을 찾을 수 없는 경우 null
      • getState

        SubscriptionSet.State getState()
        SubscriptionSet의 현재 상태를 반환합니다. 각 상태에 대한 자세한 내용은 SubscriptionSet.State 를 참조하세요.
        반환합니다:
        SubscriptionSet의 현재 상태입니다.
      • size

        int size()
        현재 이 구독 세트에 있는 구독 수를 반환합니다.
        반환합니다:
        구독 세트의 구독 수입니다.
      • waitForSynchronization

        부울 waitForSynchronization()
        구독 세트가 서버와 동기화될 때까지 기다립니다. 서버가 쿼리 세트를 수락하고 쿼리에 대한 데이터를 다운로드했거나 오류가 발생한 경우 반환됩니다. 다운로드한 데이터를 보려면 수동으로 BaseRealm.refresh() 를 호출하거나 변경 리스너가 trigger할 때까지 기다려야 합니다. 오류가 발생한 경우 getErrorMessage() 을(를) 통해 기본 원인을 찾을 수 있습니다.
        반환합니다:
        true 서버에서 현재의 모든 구독을 수락하고 데이터를 다운로드한 경우에는 false 을 반환하고, 오류가 발생한 경우에는 을 반환합니다.
      • waitForSynchronization

        부울 waitForSynchronization(Long timeOut,
                                       TimeUnit 단위)
        구독 세트가 서버와 동기화될 때까지 기다립니다. 서버가 쿼리 세트를 수락하고 쿼리에 대한 데이터를 다운로드했거나 오류가 발생한 경우 반환됩니다. 다운로드한 데이터를 보려면 수동으로 BaseRealm.refresh() 를 호출하거나 변경 리스너가 trigger할 때까지 기다려야 합니다. 오류가 발생한 경우 getErrorMessage() 을(를) 통해 기본 원인을 찾을 수 있습니다.
        매개변수:
        timeOut - 동기화가 성공하거나 실패할 때까지 기다리는 시간입니다.
        unit - 제한 시간에 사용되는 시간 단위입니다.
        반환합니다:
        true 서버에서 현재의 모든 구독을 수락하고 데이터를 다운로드한 경우에는 false 을 반환하고, 오류가 발생한 경우에는 을 반환합니다.
        예외 처리:
        RuntimeException - 시간 초과가 초과된 경우.
      • waitForSynchronizationAsync

        RealmAsyncTask waitForSynchronizationAsync(SubscriptionSet.StateChangeCallback 콜백)
        구독 세트가 서버와 동기화될 때까지 비동기적으로 기다립니다. 서버가 쿼리 세트를 수락하고 쿼리에 대한 데이터를 다운로드했거나 오류가 발생한 경우 콜백을 호출합니다. 다운로드한 데이터를 보려면 수동으로 BaseRealm.refresh() 를 호출하거나 변경 리스너가 trigger할 때까지 기다려야 합니다. 오류가 발생한 경우 getErrorMessage() 을(를) 통해 기본 원인을 찾을 수 있습니다.
        매개변수:
        callback - 동기화가 성공하거나 실패할 때 trigger하는 콜백입니다. 결과는 UI 스레드에서 보고됩니다.
        반환합니다:
        true 서버에서 현재의 모든 구독을 수락하고 데이터를 다운로드한 경우에는 false 을 반환하고, 오류가 발생한 경우에는 을 반환합니다.
      • waitForSynchronizationAsync

        RealmAsyncTask waitForSynchronizationAsync(Long timeOut,
                                                   TimeUnit 단위,
                                                   SubscriptionSet.StateChangeCallback 콜백)
        구독 세트가 서버와 동기화될 때까지 비동기적으로 기다립니다. 콜백은 서버가 쿼리 세트를 수락하고 쿼리에 대한 데이터를 다운로드했거나 오류가 발생한 경우 호출됩니다. 다운로드한 데이터를 보려면 수동으로 BaseRealm.refresh() 를 호출하거나 변경 리스너가 trigger할 때까지 기다려야 합니다. 오류가 발생한 경우 getErrorMessage() 을(를) 통해 기본 원인을 찾을 수 있습니다.
        매개변수:
        timeOut - 동기화가 성공하거나 실패할 때까지 기다리는 시간입니다.
        unit - 제한 시간에 사용되는 시간 단위입니다.
        callback - 동기화가 성공하거나 실패할 때 trigger하는 콜백입니다. 결과는 UI 스레드에서 보고됩니다.
        반환합니다:
        true 서버에서 현재의 모든 구독을 수락하고 데이터를 다운로드한 경우에는 false 을 반환하고, 오류가 발생한 경우에는 을 반환합니다.
      • update

        SubscriptionSet 업데이트​(SubscriptionSet.UpdateCallback 조치)
        구독 세트를 수정합니다. 업데이트 중에 예외가 발생하면 변경 사항이 적용되지 않습니다. 업데이트가 성공하면 이 구독 세트가 수정된 상태로 업데이트됩니다.
        매개변수:
        action - 구독 세트를 수정하는 블록입니다. 호출자 스레드에서 실행됩니다.
        반환합니다:
        이제 업데이트된 이 구독 세트입니다.
        예외 처리:
        Exception - 업데이트 중에 발생한 예외는 다시 전파됩니다.
      • updateAsync

        RealmAsyncTask updateAsync​(SubscriptionSet.UpdateAsyncCallback 콜백)
        구독 세트를 비동기적으로 수정합니다. 업데이트 중에 예외가 발생하면 변경 사항이 적용되지 않습니다. *
        매개변수:
        callback - 비동기 요청을 제어하는 콜백입니다. 성공 또는 실패가 여기에 보고됩니다.
        반환합니다:
        비동기 실행을 제어하는 작업.