Classe Realm.Callback
- java.lang.Object
-
- io.realm.BaseRealm.InstanceCallback<Realm>
-
- io.realm.Realm.Callback
-
- Classe anexa:
- Realm
public abstract static class Realm.Callback extends io.realm.BaseRealm.InstanceCallback<Realm>
A chamada de resposta usada ao relatar o resultado do carregamento de um Realm de forma assíncrona usandoRealm.getInstanceAsync(RealmConfiguration, Realm.Callback)
ouDynamicRealm.getInstanceAsync(RealmConfiguration, DynamicRealm.Callback)
.Antes de criar a primeira Instância de Realm em um processo, há algum trabalho de inicialização que precisa ser feito, como criar ou validar esquemas, executar a migração, se necessário, copiar o arquivo de ativo se
RealmConfiguration.Builder.assetFile(String)
for fornecido e executarRealmConfiguration.Builder.initialData(Realm.Transaction)
, se necessário. Esse trabalho pode levar tempo e bloquear o tópico do chamador por um tempo. Para evitar que a chamadagetInstance()
bloqueie o thread principal, ogetInstanceAsync()
pode ser usado em vez disso para fazer o trabalho de inicialização no thread de background e fornecer uma Instância de Realm ao thread do chamador.Em geral, esse método é útil principalmente no thread da UI, pois ele deve ser bloqueado o menos possível. Em quaisquer outros threads do loop de eventos ou outros threads que não suportam chamada de resposta, o uso do
getInstance()
padrão deve ser suficiente.Aqui está um exemplo de usar o
getInstanceAsync()
quando o aplicativo inicia a primeira atividade:public class MainActivity extends Activity { private Realm realm = null; private RealmAsyncTask realmAsyncTask; private static RealmConfiguration config = new RealmConfiguration.Builder() .schema(42) .migration(new MyMigration()) // Potentially lengthy migration .build(); \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); realmAsyncTask = Realm.getInstanceAsync(config, new Callback() { \@Override public void onSuccess(Realm realm) { if (isDestroyed()) { // If the activity is destroyed, the Realm instance should be closed immediately to avoid leaks. // Or you can call realmAsyncTask.cancel() in onDestroy() to stop callback delivery. realm.close(); } else { MainActivity.this.realm = realm; // Remove the spinner and start the real UI. } } }); // Show a spinner before Realm instance returned by the callback. } \@Override protected void onDestroy() { super.onDestroy(); if (realm != null) { realm.close(); realm = null; } else { // Calling cancel() on the thread where getInstanceAsync was called on to stop the callback delivery. // Otherwise you need to check if the activity is destroyed to close in the onSuccess() properly. realmAsyncTask.cancel(); } } }
-
-
Resumo do construtor
Construtores Constructor Descrição Callback()
-
Resumo do método
Todos os métodos Métodos de instância Métodos abstratos Métodos concretos Modificador e tipo Método Descrição void
onError(Throwable exception)
Entregue um erro acontece ao criar a Instância de Realm para o tópico do chamador.abstract void
onSuccess(Realm realm)
Entregue uma Instância de Realm para a conversa do chamador.
-
-
-
Detalhes do método
-
onSuccess
public abstract void onSuccess(Realm realm)
Entregue uma Instância de Realm para a conversa do chamador.- Especificado por:
onSuccess
na aulaio.realm.BaseRealm.InstanceCallback<Realm>
- Parâmetros:
realm
- a Instância de Realm para a conversa do chamador.
-
onError
public void onError(Throwable exception)
Entregue um erro acontece ao criar a Instância de Realm para o tópico do chamador. A implementação padrão lançará uma exceção no thread do chamador.- Substitui:
onError
na aulaio.realm.BaseRealm.InstanceCallback<Realm>
- Parâmetros:
exception
- aconteceu ao inicializar o Realm em um thread em segundo plano.
-
-