Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

Classe RealmResults

Nesta página

  • io.realm
  • Resumo do método
  • Métodos herdados
  • Detalhes do método
  • addChangeListener
  • asChangesetObservable
  • asFlowable
  • asJSON
  • congelar
  • IsFrozen
  • isLoaded
  • carregar
  • Remover todos os ouvintes de alterações
  • removeChangeListener
  • setBlob
  • setBoolean
  • setByte
  • setDate
  • setDecimal128
  • setDouble
  • setFloat
  • setInt
  • setList
  • setLong
  • setNull
  • setObject
  • setObjectId
  • setcurto
  • setString
  • setUUID
  • Definir valor
  • sort
  • ONDE
java.lang.Object
io.realm.OrderedRealmCollectionImpl
io.realm.RealmResults

Essa classe contém todas as correspondências de um RealmQuery para um determinado Realm. Os objetos não são copiados do Realm para a lista RealmResults, mas são apenas referenciados do RealmResult. Isso economiza memória e aumenta a velocidade.

Os RealmResults são visualizações em tempo real, o que significa que, se estiver em uma thread Looper , ele atualizará automaticamente seus resultados de query após a confirmação de uma transação. Se estiver em uma thread sem loop de eventos, Realm.refresh() deve ser chamado para atualizar os resultados.

As atualizações do RealmObjects a partir de uma lista do RealmResults devem ser feitas de dentro de uma transação e os objeto modificados devem ser mantidos no Arquivo de Realm durante a confirmação da transação.

Um objeto RealmResults não pode ser passado entre threads diferentes.

Observe que um RealmResults nunca é null nem mesmo no caso em que não contém objetos. Você deve sempre usar o RealmResults.size() método para verificar se um RealmResults está vazio ou não.

Se um RealmResults for criado no RealmList por meio do RealmList.where() , ele ficará vazio quando o RealmList de origem for excluído.

RealmResults pode conter mais elementos do que Integer.MAX_VALUE . Nesse caso, você pode acessar apenas os primeiros Integer.MAX_VALUE elementos nele.

Dica

Veja também:

Modificador e tipo
Método e descrição
public void
public void

Adiciona um ouvinte de alterações a este RealmResults .

public <any>

Retorna um Rx Observable que monitora as alterações neste RealmResults.

public <any>

Retorna um Rx Flowable que monitora as alterações neste RealmResults.

Retorna uma representação JSON das correspondências de um RealmQuery .

booleanopúblico
booleanopúblico

Retorna false se os resultados ainda não estiverem carregados, true se estiverem carregados.

booleanopúblico
load ()

Cria um bloqueio de query assíncrono.

public void

Remove todos os ouvintes de alterações definidos pelo usuário.

public void
public void

Remove o ouvinte de alterações especificado.

public void
String fieldName,
byte[] value
)

Define o valor binário do campo fornecido em todos os objeto na collection.

public void
String fieldName,
boolean value
)

Define o valor boolean do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
byte value
)

Define o valor byte do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
Date value
)

Define o valor Date do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
Decimal128 value
)

Define o valor Decimal128 do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
double value
)

Define o valor double do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
float value
)

Define o valor float do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
int value
)

Define o valor int do campo fornecido em todos os objetos na coleção.

public void
setList <T >(
)

Substitui o RealmList no campo fornecido em todos os objeto nesta collection.

public void
String fieldName,
long value
)

Define o valor long do campo fornecido em todos os objetos na coleção.

public void
String fieldName
)

Define o valor para null para o campo fornecido em todos os objeto na collection.

public void
String fieldName,
)

Define uma referência a outro objeto no campo fornecido em todos os objetos da collection.

public void
String fieldName,
ObjectId value
)

Define o valor ObjectId do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
short value
)

Define o valor short do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
String value
)

Define o valor String do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
UUID value
)

Define o valor UUID do campo fornecido em todos os objetos na coleção.

public void
String fieldName,
Object value
)

Atualiza o campo fornecido por fieldName em todos os objetos dentro do resultado da query.

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

Classifica uma collection com base nos campos fornecidos e nas ordens de classificação.

Public RealmQuery

Retorna um RealmQuery , que pode ser utilizado para fazer query de objeto específicos desta collection.

  • Métodos herdados da classe java.lang.Object : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

  • Métodos herdados da classe java.util.AbstractCollection : iterator , size , isEmpty , contains , toArray , toArray , add , remove , containsAll , addAll , removeAll , retainAll , clear , toString

  • Métodos herdados da classe java.util.AbstractList : add , get , set , add , remove , indexOf , lastIndexOf , clear , addAll , iterator , listIterator , listIterator , subList , equals , hashCode , removeRange

  • Métodos herdados da classe io.realm.OrderedRealmCollectionImpl: isValid , isManaged , contains , get , first , first , last , last , deleteFromRealm , deleteAllFromRealm , iterator , listIterator , listIterator , sort , sort , sort , sort , size , min , minDate , max , maxDate , sum , average , remove , remove , removeAll , set , retainAll , deleteLastFromRealm , deleteFirstFromRealm , clear , add , add , addAll , addAll , createSnapshot , getRealm , getCollectionOperator

Adiciona um ouvinte de alterações a este RealmResults .

Registrar um ouvinte de alterações não impedirá que o RealmResults subjacente seja coletado o lixo. Se o RealmResults for coletado como lixo, o ouvinte de alterações deixará de ser acionado. Para evitar isso, mantenha uma referência forte pelo tempo apropriado, por exemplo, em uma variável de classe.

public class MyActivity extends Activity {
private RealmResults<Person> results; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
results = realm.where(Person.class).findAllAsync();
results.addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<Person>>() {
@Override
public void onChange(RealmResults<Person> persons, OrderedCollectionChangeSet changeSet) {
// React to change
}
});
}
}

Parâmetros

  • listener - o ouvinte de alterações a ser notificado.

Lança

Adiciona um ouvinte de alterações a este RealmResults .

Registrar um ouvinte de alterações não impedirá que o RealmResults subjacente seja coletado o lixo. Se o RealmResults for coletado como lixo, o ouvinte de alterações deixará de ser acionado. Para evitar isso, mantenha uma referência forte pelo tempo apropriado, por exemplo, em uma variável de classe.

public class MyActivity extends Activity {
private RealmResults<Person> results; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
results = realm.where(Person.class).findAllAsync();
results.addChangeListener(new RealmChangeListener<RealmResults<Person>>() {
@Override
public void onChange(RealmResults<Person> persons) {
// React to change
}
});
}
}

Parâmetros

  • listener - o ouvinte de alterações a ser notificado.

Lança

public <any> asChangesetObservable ()

Retorna um Rx Observable que monitora as alterações neste RealmResults. Ele emitirá o RealmResults atual quando for inscrito. Para cada atualização do RealmResult, um par que consiste no RealmResults e no OrderedCollectionChangeSet será enviado. O changeset será null na primeira vez que um RealmResults for emitido.

O RealmResults será emitido continuamente à medida que o RealmResults for atualizado - onComplete nunca será chamado.

Itens emitidos a partir de Realm Observables são congelados (consulte congelar() . Isso significa que eles são imutáveis e podem ser lidos em qualquer thread.

Realm Observables sempre emitem itens do thread que contém o Realm ativo. Isso significa que, se você precisar fazer processamento adicional, é recomendável observar os valores em um agendador de computação:

realm.where(Foo.class).findAllAsync().asChangesetObservable()
.observeOn(Schedulers.computation())
.map((rxResults, changes) -> doExpensiveWork(rxResults, changes))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

Devoluções

RxJava Observable que chama apenas onNext . Ele nunca chamará onComplete ou OnError .

Lança

Dica

Veja também:

public <any> asFlowable ()

Retorna um Rx Flowable que monitora as alterações neste RealmResults. Ele emitirá o RealmResults atual quando for inscrito. O RealmResults será emitido continuamente à medida que o RealmResults for atualizado - onComplete nunca será chamado.

Itens emitidos de Realm Flowables são congelados (consulte congelar() . Isso significa que eles são imutáveis e podem ser lidos em qualquer thread.

Os Realm Flowables sempre emitem itens do thread que mantém o RealmResults ativo. Isso significa que, se você precisar fazer processamento adicional, é recomendável observar os valores em um agendador de computação:

realm.where(Foo.class).findAllAsync().asFlowable()
.observeOn(Schedulers.computation())
.map(rxResults -> doExpensiveWork(rxResults))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

Se você quiser que o asFlowable() pare de emitir itens, você pode instruir o RxJava a emitir apenas somente o primeiro item usando o operador first() :

realm.where(Foo.class).findAllAsync().asFlowable()
.filter(results -> results.isLoaded())
.first()
.subscribe( ... ) // You only get the results once

Devoluções

RxJava Observable que chama apenas onNext . Ele nunca chamará onComplete ou OnError .

Lança

Dica

Veja também:

public String asJSON ()

Retorna uma representação JSON das correspondências de um RealmQuery . Os ciclos serão retornados como índices de linha. Este é um método auxiliar usado para inspecionar dados ou, para fins de depuração, esse método pode puxar uma string grande, o que pode causar um erro de OutOfMemory.

Devoluções

representação de string de uma array JSON contendo entradas do RealmQuery resultante .

public boolean isFrozen ()

public boolean isLoaded ()

Retorna false se os resultados ainda não estiverem carregados, true se estiverem carregados.

Devoluções

true se a query tiver sido concluída e os dados estiverem disponíveis, false se a query ainda estiver em execução em segundo plano.

public boolean load ()

Cria um bloqueio de query assíncrono. Isso também trigger qualquer RealmChangeListener registrado quando a query for concluída.

Devoluções

true se concluiu a query com sucesso, false caso contrário.

Remove todos os ouvintes de alterações definidos pelo usuário.

Lança

Remove o ouvinte de alterações especificado.

Parâmetros

  • listener - o ouvinte de alterações a ser removido.

Lança

Remove o ouvinte de alterações especificado.

Parâmetros

  • listener - o ouvinte de alterações a ser removido.

Lança

public void setBlob (
String fieldName,
byte[] value
)

Define o valor binário do campo fornecido em todos os objeto na collection.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo binário.

public void setBoolean (
String fieldName,
boolean value
)

Define o valor boolean do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo booleano.

public void setByte (
String fieldName,
byte value
)

Define o valor byte do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, é uma propriedade de chave primária ou não é um campo de bytes.

public void setDate (
String fieldName,
Date value
)

Define o valor Date do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um Date campo .

public void setDecimal128 (
String fieldName,
Decimal128 value
)

Define o valor Decimal128 do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um Decimal128 campo .

public void setDouble (
String fieldName,
double value
)

Define o valor double do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo duplo.

public void setFloat (
String fieldName,
float value
)

Define o valor float do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo flutuante.

public void setInt (
String fieldName,
int value
)

Define o valor int do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo inteiro.

public void setList <T >(
)

Substitui o RealmList no campo fornecido em todos os objeto nesta collection.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • list - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, não for um campo RealmList, se os objetos na lista não forem gerenciados ou o tipo dos objetos na lista estiver errado.

public void setLong (
String fieldName,
long value
)

Define o valor long do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo longo .

public void setNull (
String fieldName
)

Define o valor para null para o campo fornecido em todos os objeto na collection.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

Lança

  • IllegalArgumentException - se o nome do campo não existir ou for uma propriedade de chave primária.

  • Exceção de estado ilegal - se o campo não puder conter null valores.

public void setObject (
String fieldName,
)

Define uma referência a outro objeto no campo fornecido em todos os objetos da collection.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo objeto referenciado por este campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo de referência do objeto .

public void setObjectId (
String fieldName,
ObjectId value
)

Define o valor ObjectId do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um ObjectId campo .

public void setShort (
String fieldName,
short value
)

Define o valor short do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um campo curto.

public void setString (
String fieldName,
String value
)

Define o valor String do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, é uma propriedade de chave primária ou não é um campo de string .

public void setUUID (
String fieldName,
UUID value
)

Define o valor UUID do campo fornecido em todos os objetos na coleção.

Parâmetros

  • fieldName - nome do campo a ser atualizado.

  • value - novo valor para o campo.

Lança

  • IllegalArgumentException - se o nome do campo não existir, for uma propriedade de chave primária ou não for um UUID campo .

public void setValue (
String fieldName,
Object value
)

Atualiza o campo fornecido por fieldName em todos os objetos dentro do resultado da query.

Este método tentará converter automaticamente números e booleanos fornecidos como String para o tipo apropriado. Por exemplo, "10" será convertido em 10 se o tipo de campo for RealmFieldType.Integer .

Usar os setters digitados como setInt(string, int) será mais rápido do que usar este método.

Parâmetros

  • fieldName - campo para atualizar

  • value - valor com o qual atualizar.

Lança

  • IllegalArgumentException - se o campo não puder ser encontrado, não puder ser atualizado ou o argumento não corresponder ao tipo de campo ou não puder ser convertido para corresponder ao tipo de campo subjacente.

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

Classifica uma collection com base nos campos fornecidos e nas ordens de classificação.

Devoluções

um novo RealmResults classificado será criado e retornado. A coleção original permanece inalterada.

Substitui

sort na classe OrderedRealmCollectionImpl

public RealmQuery where ()

Retorna um RealmQuery , que pode ser utilizado para fazer query de objeto específicos desta collection.

Devoluções

um objeto RealmQuery.

Voltar

RealmQuery