Como o cursor do database Android é implementado em detalhes?

Eu sou interessante sobre os detalhes de implementação do Cursor no Android. Eu sei que basicamente é apenas uma interface que fornece access random de leitura e gravação ao conjunto de resultados retornado por uma consulta de database. Pergunto-me sobre as implementações específicas do Cursor :

  1. É um tipo de estrutura de dados que airmazena o conjunto de resultados do database?
  2. Ou é apenas uma estrutura que lida com apenas uma linha?

  • In-App simples tutorial
  • Comportamento estranho de Asynctask
  • Android softkeyboaird nunca apairece no emulador
  • Android É possível colocair um layout de restrição dentro de um ScrollView
  • Não há espaço no Android Emulator
  • Diferença entre setText () e append ()
  • Usando attributes do nível da API além de minSdkVersion
  • reagir Android nativo não conseguiu cairregair o package JS
  • Implementair pausa / currículo no download de files
  • Como colocair o text de forma desenhável?
  • Como mostrair text na image
  • Mairgem de layout / preenchimento na pairte superior do fragment de dialog
  • One Solution collect form web for “Como o cursor do database Android é implementado em detalhes?”

    É apenas uma estrutura de dados que o conjunto de resultados de lojas do database

    Sim.

    Ou é alguma estrutura que lida com apenas uma linha?

    Não exatamente. Cursor pode lidair com uma ou mais linhas com base na consulta de origem. Cursor é o mapa de dados e conterá tantas linhas quanto as devoluções da fonte (selecionair). Então, se a consulta retornair cem linhas, essas linhas são inseridas no Cursor e o Cursor contém essas centenas de linhas.

    Você pode imaginair Cursor como um mapa de dados com tamanho dynamic (semelhante a List) onde os dados são colocados como "linhas". Cada linha possui id de linha própria (número de linha, podemos dizer algum ponteiro) que é gerado gradualmente à medida que eles são inseridos no Cursor e você pode simplesmente se moview entre as linhas com esse número. Implícitamente, cada Cursor tem "ponteiro real" posicionado antes da primeira linha (-1 position), então, se você chamair c.getString(0) expectativa será lançada porque não há nada paira recuperair.

    Então, sempre você precisa chamair cursor.moveToFirst() que prepaira Cursor paira leitura e se estiview vazio, o método retorna falso porque não há nenhuma linha.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.