Dados SQLite para um RecyclerView

O aplicativo possui dados em um banco de dados SQLite. A interface do usuário é principalmente um RecyclerView. A questão é como melhor transferir dados do banco de dados para a interface do usuário, mantendo o segmento principal em desvantagem?

Inicialmente, planejei usar um CursorLoader, ContentProvider e RecyclerView. Mas a leitura ao redor parece que o RecyclerView não tem suporte imediato para os dados fornecidos pelo cursor. Dang.

Isso então me deixa com algumas outras opções ...

AsyncTask para carregar os dados, colocá-los em objetos de modelo e passar para o RecyclerView Adapter. Além de ser feio, não é favorável à alteração de configuração.

Um carregador personalizado que carrega os dados do SQL e os empurra para os objetos de modelo.

Use um carregador Cursor e, quando ele retornar, o Cursor percorre-o para enviar os dados aos objetos do modelo. Eu suspeito que isso ocorra no thread principal e pode danificar o desempenho.

Use Otto para enviar uma mensagem de solicitação para solicitar dados e, em seguida, retorne uma coleção de objetos de modelo por mensagem de retorno. Pode haver ~ 500 objetos, então eu acho que posso abusar de Otto fazendo isso.

Se estou usando uma coleção de objetos de modelo em vez de um Cursor, vejo menos benefícios para um ContentProvider e também perco a capacidade da interface do usuário de atualizar automaticamente as alterações de dados (o que pode ser útil).

Nenhuma dessas opções atrai muito, existe uma maneira melhor? O aplicativo está sob pressão de tempo, portanto, o que quer que seja, precisa ser bastante rápido de implementar. Infelizmente, a interface do usuário precisa rolar horizontalmente e segmentar apenas o Lollipop; portanto, o RecyclerView parece uma aposta melhor do que o ListView.

questionAnswers(1)

yourAnswerToTheQuestion