Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

클래스 SyncSession

이 페이지의 내용

  • io.realm.mongodb.sync
  • 중첩된 클래스 요약
  • 메서드 요약
  • 상속된 메서드
  • 메서드 세부 정보
  • addConnectionChangeListener
  • addDownloadProgressListener
  • addUploadProgressListener
  • downloadAllServerChanges
  • getConfiguration
  • getConnectionState
  • getServerUrl
  • getState
  • getUser
  • isConnected
  • removeConnectionChangeListener
  • removeProgressListener
  • 시작하기
  • 중지
  • UploadAllLocalChanges
java.lang.Object
io.realm.mongodb.sync.SyncSession

세션은 장치의 단일 Realm과 Realm 객체 서버의 서버 Realm 간에 데이터를 동기화하는 방법을 제어합니다. 세션은 SyncConfiguration 을 사용하여 Realm 인스턴스를 열어 생성됩니다. 세션이 생성되면 앱이 닫히거나 이 SyncConfiguration 을 사용하는 모든 스레드가 해당 Realm 을 닫을 때까지 세션이 계속 존재합니다.

세션은 Realm에서 제어하지만 오류 발생 시 추가 정보를 제공할 수 있습니다. 이러한 오류는 SyncSession.ErrorHandler 를 통해 전달됩니다.

세션을 생성할 때 Realm 은 서버 에 대한 연결을 설정합니다. 이 연결은 Realm 에서 제어하며 여러 세션 간에 공유될 수 있습니다. addConnectionChangeListener(ConnectionListener)isConnected() 를 사용하여 연결에 인사이트 를 얻을 수 있습니다.

세션 자체의 수명 주기는 기본 연결과 다릅니다. 세션의 상태는 getState() 를 사용하여 찾을 수 있습니다.

SyncSession 객체는 스레드로부터 안전합니다.

수정자 및 유형
클래스 및 설명
public static final
public static interface
public static interface
수정자 및 유형
메서드 및 설명
public synchronized void

이 세션을 지원하는 연결에 변경 사항을 추적하는 수신기를 추가합니다.

public synchronized void

Realm 객체 서버에서 다운로드해야 하는 변경 사항을 추적하는 진행 리스너를 추가합니다.

public synchronized void

장치에서 Realm 객체 서버로 업로드해야 하는 변경 사항을 추적하는 진행 리스너를 추가합니다.

공개 부울

이 메서드를 호출하면 알려진 모든 원격 변경 사항이 Realm에 다운로드되어 적용되거나 지정된 시간 제한에 도달할 때까지 차단됩니다.

public void

이 메서드를 호출하면 알려진 모든 원격 변경 사항이 다운로드되어 Realm에 적용될 때까지 차단됩니다.

세션 제어를 담당하는 SyncConfiguration 을 반환합니다.

ConnectionState 에 정의된 대로 세션에서 사용하는 연결의 현재 상태를 가져옵니다.

공개 URI

URI 를 반환합니다. 이 세션이 연결되고 변경 사항을 동기화하는 원격 Realm을 설명합니다.

SyncSession.State 에 정의된 대로 현재 세션의 상태를 가져옵니다.

공개 사용자

MongoDB Realm에 연결하는 데 사용되는 SyncConfiguration 으로 정의된 사용자 를 반환합니다.

공개 부울

세션이 서버에 연결되어 있고 데이터를 동기화할 수 있는지 확인합니다.

public synchronized void

이전에 등록된 ConnectionListener 를 제거합니다.

public synchronized void

진행률 리스너를 제거합니다.

public synchronized void

세션을 시작하고 Realm 객체 서버와의 동기화를 활성화하려고 시도합니다.

public synchronized void
stop ()

Realm을 완전히 닫았다가 다시 열 때까지 Realm 객체 서버와의 동기화를 중지합니다.

공개 부울
long timeout,
)

이 메서드를 호출하면 알려진 모든 로컬 변경 사항이 서버에 업로드되거나 지정된 시간 제한에 도달할 때까지 차단됩니다.

public void

이 메서드를 호출하면 알려진 모든 로컬 변경 사항이 서버에 업로드될 때까지 차단됩니다.

  • 클래스 java.lang.Object 에서 상속된 메서드 : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

public synchronized void addConnectionChangeListener (
)

이 세션을 지원하는 연결에 변경 사항을 추적하는 수신기를 추가합니다. 자세한 내용은 ConnectionState 를 참조하세요.

매개변수

  • listener - 등록할 리스너입니다.

스로우

다음도 참조하세요.

public synchronized void addDownloadProgressListener (
)

Realm 객체 서버에서 다운로드해야 하는 변경 사항을 추적하는 진행 리스너를 추가합니다. ProgressListener 는 등록 시 즉시 트리거되고, 그 후에는 주기적으로 트리거됩니다.

매개변수

  • mode - 사용된 모드 유형입니다. See ProgressMode for more information.

  • listener - 등록할 리스너입니다.

public synchronized void addUploadProgressListener (
)

장치에서 Realm 객체 서버로 업로드해야 하는 변경 사항을 추적하는 진행률 리스너를 추가합니다. ProgressListener 는 등록 시 즉시 트리거되고, 그 후에는 주기적으로 트리거됩니다.

매개변수

  • mode - 사용된 모드 유형입니다. See ProgressMode for more information.

  • listener - 등록할 리스너입니다.

public boolean downloadAllServerChanges (
long timeout,
)

이 메서드를 호출하면 알려진 모든 원격 변경 사항이 Realm에 다운로드되어 적용되거나 지정된 시간 제한에 도달할 때까지 차단됩니다. 여기에는 네트워크 액세스가 포함되므로 이 메서드 호출은 UI가 아닌 스레드에서만 수행해야 합니다. 이 메서드는 Realm이 열기 전에는 호출할 수 없습니다.

반환

true 시간 초과 전에 데이터가 다운로드된 경우. 작업 시간이 초과되었거나 실패한 경우 false 입니다.

스로우

  • 불법적인 상태 예외 - Android 메인 스레드에서 호출된 경우.

  • InterruptedException - 다운로드가 지정된 제한 시간보다 오래 걸리거나 다운로드가 진행되는 동안 스레드가 중단된 경우. 이 예외가 발생한 후에도 다운로드는 백그라운드에서 계속됩니다.

  • 불법적인 인수 예외 - 이 timeout 보다 작거나 같거나 0 unitnull 인 경우 .

이 메서드를 호출하면 알려진 모든 원격 변경 사항이 다운로드되어 Realm에 적용될 때까지 차단됩니다. 여기에는 네트워크 액세스가 포함되므로 이 메서드 호출은 UI가 아닌 스레드에서만 수행해야 합니다. 기기가 오프라인 상태인 경우 이 메서드가 반환되지 않을 수 있습니다.

이 메서드는 세션이 시작되기 전에는 호출할 수 없습니다.

스로우

  • 불법적인 상태 예외 - Android 메인 스레드에서 호출된 경우.

  • InterruptedException - 다운로드가 진행되는 동안 스레드가 중단된 경우.

세션 제어를 담당하는 SyncConfiguration 을 반환합니다.

반환

이 세션을 정의하고 제어하는 SyncConfiguration입니다.

ConnectionState 에 정의된 대로 세션에서 사용하는 연결의 현재 상태를 가져옵니다.

반환

세션에서 사용하는 연결 상태입니다.

다음도 참조하세요.

public URI getServerUrl ()

URI 를 반환합니다. 이 세션이 연결되고 변경 사항을 동기화하는 원격 Realm을 설명합니다.

반환

URI 원격 Realm을 설명합니다.

SyncSession.State 에 정의된 대로 현재 세션의 상태를 가져옵니다.

이 메서드가 반환된 후 상태가 변경될 수 있습니다.

반환

세션의 상태입니다.

다음도 참조하세요.

public User getUser ()

MongoDB Realm에 연결하는 데 사용되는 SyncConfiguration 으로 정의된 사용자 를 반환합니다.

반환

MongoDB Realm에서 세션을 인증하는 데 사용되는 사용자 입니다.

public boolean isConnected ()

세션이 서버에 연결되어 있고 데이터를 동기화할 수 있는지 확인합니다. 이것은 가장 좋은 추측입니다. 배터리를 절약하기 위해 기본 구현은 하트비트를 사용하여 연결이 여전히 사용 가능한지 감지합니다. 따라서 활발하게 동기화되는 데이터가 없고 마지막 하트비트 이후 시간이 경과한 경우 연결이 끊어질 수 있었지만 이 메서드는 여전히 true 을 반환합니다.

반환

true 세션이 연결되어 데이터를 동기화할 준비가 되면 false 이 반환되고, 그렇지 않거나 연결 진행 중이면 이 반환됩니다.

public synchronized void removeConnectionChangeListener (
)

이전에 등록된 ConnectionListener 를 제거합니다.

매개변수

  • listener - 제거할 리스너

스로우

public synchronized void removeProgressListener (
)

진행률 리스너를 제거합니다. 리스너가 등록되지 않은 경우 이 메서드는 아무 작업도 수행하지 않습니다.

매개변수

  • listener - 제거할 리스너입니다.

public synchronized void start ()

세션을 시작하고 Realm 객체 서버와의 동기화를 활성화 하려고 시도합니다. 이 작업은 Realm 인스턴스 를 열 때 자동으로 수행되므로 stop() 을 사용하여 세션을 중지한 경우에만 수동으로 수행해야 합니다.

세션이 이미 시작된 경우 이 메서드를 호출해도 아무 소용이 없습니다.

getState()State.ACTIVE 를 반환하면 세션이 시작된 것으로 간주됩니다. 세션이 State.DYING 인 경우 세션은 State.ACTIVE 로 다시 이동됩니다.

다음도 참조하세요.

public synchronized void stop ()

Realm 을 완전히 닫았다가 다시 열 때까지 Realm 객체 서버와의 동기화를 중지합니다. 동기화 는 start() 를 다시 호출하여 다시 활성화할 수 있습니다.

세션이 이미 중지된 경우 이 메서드를 호출해도 아무 작업도 수행되지 않습니다.

public boolean uploadAllLocalChanges (
long timeout,
)

이 메서드를 호출하면 알려진 모든 로컬 변경 사항이 서버에 업로드되거나 지정된 시간 제한에 도달할 때까지 차단됩니다. 여기에는 네트워크 액세스가 포함되므로 이 메서드 호출은 UI가 아닌 스레드에서만 수행해야 합니다. 이 메서드는 Realm이 열기 전에는 호출할 수 없습니다.

반환

true 제한 시간 전에 데이터가 업로드된 경우. 작업 시간이 초과되었거나 실패한 경우 false 입니다.

스로우

  • 불법적인 상태 예외 - Android 메인 스레드에서 호출된 경우.

  • InterruptedException - 업로드가 지정된 제한 시간보다 오래 걸리거나 업로드가 진행되는 동안 스레드가 중단된 경우. 이 예외가 발생한 후에도 업로드는 백그라운드에서 계속됩니다.

  • 불법적인 인수 예외 - 이 timeout 보다 작거나 같거나 0 unitnull 인 경우 .

public void uploadAllLocalChanges ()

이 메서드를 호출하면 알려진 모든 로컬 변경 사항이 서버에 업로드될 때까지 차단됩니다. 여기에는 네트워크 액세스가 포함되므로 이 메서드 호출은 UI가 아닌 스레드에서만 수행해야 합니다. 기기가 오프라인 상태인 경우 이 메서드가 반환되지 않을 수 있습니다.

이 메서드는 Realm이 열기 전에는 호출할 수 없습니다.

스로우

  • 불법적인 상태 예외 - Android 메인 스레드에서 호출된 경우.

  • InterruptedException - 다운로드가 진행되는 동안 스레드가 중단된 경우.

돌아가기

SyncConfiguration.InitialFlexibleSyncSubscriptions