Class SyncSession
- java.lang.Object
-
- io.realm.mongodb.sync.SyncSession
-
public class SyncSession extends Object
Uma sessão controla como os dados são sincronizados entre um único Realm no dispositivo e o servidor Realm no servidor de objeto de Realm.Uma sessão é criada abrindo uma instância de Realm usando um
SyncConfiguration
. Depois que uma sessão for criada, ela continuará a existir até que o aplicativo seja fechado ou que todos os threads que usam esteSyncConfiguration
fechem seus respectivosRealm
s.Uma sessão é controlada pelo Realm, mas pode fornecer informações adicionais em caso de erros. Esses erros são repassados no
SyncSession.ErrorHandler
.Ao criar uma sessão, o Realm estabelecerá uma conexão com o servidor. Esta conexão é controlada pelo Realm e pode ser compartilhada entre várias sessões. É possível obter informações sobre a conexão usando
addConnectionChangeListener(ConnectionListener)
eisConnected()
.A sessão em si tem um ciclo de vida diferente da conexão subjacente. O estado da sessão pode ser encontrado usando
getState()
.O objeto
SyncSession
é seguro para threads.
-
-
Resumo da classe aninhada
Classes agrupadas Modificador e tipo classe Descrição static interface
SyncSession.ClientResetHandler
Obsoleto.substituído porManuallyRecoverUnsyncedChangesStrategy
static interface
SyncSession.ErrorHandler
Interface usada para relatar quaisquer erros de sessão.static class
SyncSession.State
enumeração descrevendo os estados em que uma SyncSession pode estar.
-
Resumo do método
Todos os métodos Métodos de instância Métodos concretos Modificador e tipo Método Descrição void
addConnectionChangeListener(ConnectionListener listener)
Adiciona um ouvinte rastreando alterações na conexão apoiando esta sessão.void
addDownloadProgressListener(ProgressMode mode, ProgressListener listener)
Adiciona um ouvinte de progresso rastreando as alterações que precisam ser baixadas do servidor de Objeto de Realm.void
addUploadProgressListener(ProgressMode mode, ProgressListener listener)
Adiciona um ouvinte de progresso rastreando as alterações que precisam ser carregadas do dispositivo para o servidor de Objeto de Realm.void
downloadAllServerChanges()
A chamada desse método será bloqueada até que todas as alterações remotas conhecidas tenham sido baixadas e aplicadas ao Realm.boolean
downloadAllServerChanges(long timeout, TimeUnit unit)
A chamada desse método será bloqueada até que todas as alterações remotas conhecidas tenham sido baixadas e aplicadas ao Realm ou até que o tempo limite especificado seja atingido.SyncConfiguration
getConfiguration()
Retorna oSyncConfiguration
que é responsável por controlar a sessão.ConnectionState
getConnectionState()
Obtenha o estado atual da conexão usada pela sessão, conforme definido emConnectionState
.URI
getServerUrl()
Retorna oURI
descrevendo o Realm remoto ao qual esta sessão se conecta e com a qual sincroniza as alterações.SyncSession.State
getState()
Obtenha o estado da sessão atual, conforme definido emSyncSession.State
.User
getUser()
Retorna oUser
definido peloSyncConfiguration
que é usado para se conectar ao MongoDB Realm.boolean
isConnected()
Verifica se a sessão está conectada ao servidor e pode sincronizar dados.void
removeConnectionChangeListener(ConnectionListener listener)
Remove umConnectionListener
registrado anteriormente.void
removeProgressListener(ProgressListener listener)
Remove um ouvinte de progresso.void
start()
Tenta iniciar a sessão e habilitar a sincronização com o servidor de Objeto de Realm.void
stop()
Interrompe qualquer sincronização com o servidor de Objeto de Realm até que o Realm seja reaberto depois de fechá-lo completamente.void
uploadAllLocalChanges()
A chamada desse método será bloqueada até que todas as alterações locais conhecidas tenham sido carregadas no servidor.boolean
uploadAllLocalChanges(long timeout, TimeUnit unit)
A chamada desse método será bloqueada até que todas as alterações locais conhecidas sejam carregadas no servidor ou que o tempo limite especificado seja atingido.
-
-
-
Detalhes do método
-
getConfiguration
public SyncConfiguration getConfiguration()
Retorna oSyncConfiguration
que é responsável por controlar a sessão.- Retorna:
- SyncConfiguration que define e controla esta sessão.
-
getUser
utilizador público getUser ()
Retorna oUser
definido peloSyncConfiguration
que é usado para se conectar ao MongoDB Realm.- Retorna:
User
usado para autenticar a sessão no MongoDB Realm.
-
getServerUrl
URI pública getServerUrl()
Retorna oURI
descrevendo o Realm remoto ao qual esta sessão se conecta e com a qual sincroniza as alterações.- Retorna:
URI
descrevendo o Realm remoto.
-
Obter estado
public SyncSession.State getState()
Obtenha o estado da sessão atual, conforme definido emSyncSession.State
.Observe que o estado pode mudar após esse método retornar.
- Retorna:
- o estado da sessão.
- Veja também:
SyncSession.State
-
getConnectionState
Public ConnectionState getConnectionState()
Obtenha o estado atual da conexão usada pela sessão, conforme definido emConnectionState
.- Retorna:
- o estado da conexão usado pela sessão.
- Veja também:
ConnectionState
-
isConnected
boolean público isConnected()
Verifica se a sessão está conectada ao servidor e pode sincronizar dados. Este é o melhor esforço de suposição. Para conservar bateria, a implementação subjacente usa pulsações para detectar se a conexão ainda está disponível. Portanto, se nenhum dado estiver sendo sincronizado ativamente e tiver passado algum tempo desde a última pulsação, a conexão poderá ter sido interrompida, mas esse método ainda retornarátrue
.- Retorna:
true
se a sessão estiver conectada e pronta para sincronizar os dados,false
caso contrário, ou se estiver em processo de conexão.
-
addDownloadProgressListener
public void addDownloadProgressListener(ProgressMode mode, ProgressListener listener)
Adiciona um ouvinte de progresso rastreando as alterações que precisam ser baixadas do servidor de Objeto de Realm.O
ProgressListener
será acionado imediatamente quando registrado e periodicamente depois.- Parâmetros:
mode
- tipo de modo usado. ConsulteProgressMode
para obter mais informações.listener
- o ouvinte a se registrar.
-
addUploadProgressListener
public void addUploadProgressListener(ProgressMode mode, ProgressListener listener)
Adiciona um ouvinte de progresso rastreando as alterações que precisam ser carregadas do dispositivo para o servidor de Objeto de Realm.O
ProgressListener
será acionado imediatamente quando registrado e periodicamente depois.- Parâmetros:
mode
- tipo de modo usado. ConsulteProgressMode
para obter mais informações.listener
- o ouvinte a se registrar.
-
removeProgressListener
public void removeProgressListener(ProgressListener listener)
Remove um ouvinte de progresso. Se o ouvinte não tiver sido registrado, esse método não fará nada.- Parâmetros:
listener
- ouvinte a ser removido.
-
addConnectionChangeListener
public void addConnectionChangeListener(ConnectionListener listener)
Adiciona um ouvinte rastreando alterações na conexão apoiando esta sessão. ConsulteConnectionState
para obter mais detalhes.- Parâmetros:
listener
- o ouvinte a se registrar.- Lançamentos:
IllegalArgumentException
- se o ouvinte fornull
.- Veja também:
ConnectionState
-
removeConnectionChangeListener
public void removeConnectionChangeListener(ConnectionListener listener)
Remove umConnectionListener
registrado anteriormente.- Parâmetros:
listener
- ouvinte para remover- Lançamentos:
IllegalArgumentException
- se o ouvinte fornull
.
-
downloadAllServerChanges
public void downloadAllServerChanges() throws InterruptedException
A chamada desse método será bloqueada até que todas as alterações remotas conhecidas tenham sido baixadas e aplicadas ao Realm. Isso envolverá acesso à rede, portanto, a chamada desse método só deve ser feita a partir de um thread que não seja da interface do usuário.Se o dispositivo estiver offline, esse método poderá nunca retornar.
Este método não pode ser chamado antes que a sessão tenha sido iniciada.
- Lançamentos:
IllegalStateException
- se chamado no thread principal do Android.InterruptedException
- se o thread foi interrompido durante o download em andamento.
-
downloadAllServerChanges
public boolean downloadAllServerChanges(tempo limite longo, unidade TimeUnit ) lança InterruptedException
A chamada desse método será bloqueada até que todas as alterações remotas conhecidas tenham sido baixadas e aplicadas ao Realm ou até que o tempo limite especificado seja atingido. Isso envolverá acesso à rede, portanto, a chamada desse método só deve ser feita a partir de um thread que não seja da interface do usuário.Este método não pode ser chamado antes que o Realm seja aberto.
- Retorna:
true
se os dados foram baixados antes do tempo-limite.false
se a operação expirou ou falhou.- Lançamentos:
IllegalStateException
- se chamado no thread principal do Android.InterruptedException
- se o download demorou mais do que o tempo limite especificado ou se o thread foi interrompido enquanto o download estava em andamento. O download continuará em segundo plano mesmo depois que essa exceção for lançada.IllegalArgumentException
- setimeout
for menor ou igual a0
ouunit
fornull
.
-
uploadAllLocalChanges
public void uploadAllLocalChanges() throws InterruptedException
A chamada desse método será bloqueada até que todas as alterações locais conhecidas tenham sido carregadas no servidor. Isso envolverá acesso à rede, portanto, a chamada desse método só deve ser feita a partir de um thread que não seja da interface do usuário.Se o dispositivo estiver offline, esse método poderá nunca retornar.
Este método não pode ser chamado antes que o Realm seja aberto.
- Lançamentos:
IllegalStateException
- se chamado no thread principal do Android.InterruptedException
- se o thread foi interrompido durante o download em andamento.
-
uploadAllLocalChanges
public boolean uploadAllLocalChanges(tempo limite longo, unidade TimeUnit ) lança InterruptedException
A chamada desse método será bloqueada até que todas as alterações locais conhecidas sejam carregadas no servidor ou que o tempo limite especificado seja atingido. Isso envolverá acesso à rede, portanto, a chamada desse método só deve ser feita a partir de um thread que não seja da interface do usuário.Este método não pode ser chamado antes que o Realm seja aberto.
- Retorna:
true
se os dados foram carregados antes do tempo-limite.false
se a operação expirou ou falhou.- Lançamentos:
IllegalStateException
- se chamado no thread principal do Android.InterruptedException
- se o upload demorou mais do que o tempo limite especificado ou se o thread foi interrompido enquanto o upload estava em andamento. O upload continuará em segundo plano mesmo depois que essa exceção for lançada.IllegalArgumentException
- setimeout
for menor ou igual a0
ouunit
fornull
.
-
iniciar
public void start()
Tenta iniciar a sessão e habilitar a sincronização com o servidor de Objeto de Realm.Isso acontece automaticamente ao abrir a instância do Realm, portanto, fazer isso manualmente só deve ser necessário se a sessão tiver sido interrompida usando
stop()
.Se a sessão já tiver sido iniciada, chamar esse método não fará nada.
Uma sessão é considerada iniciada se
getState()
retornarSyncSession.State.ACTIVE
. Se a sessão forSyncSession.State.DYING
, a sessão será movida de volta paraSyncSession.State.ACTIVE
.- Veja também:
getState()
,stop()
-
parar
public void stop()
Interrompe qualquer sincronização com o servidor de Objeto de Realm até que o Realm seja reaberto depois de fechá-lo completamente.A sincronização pode ser reativada ligando para
start()
novamente.Se a sessão já estiver interrompida, chamar esse método não fará nada.
-
-