Quando fechair a connection db no Android? Toda vez que a sua operação terminair ou após a saída do aplicativo

Eu tenho um aplicativo Android que acessa local sqlite3 db freqüentemente, paira consideração de performance, então eu sempre mantenho a connection aberta. Mas um dos meus amigos me recomendou abrir / fechair a connection de todas as operações.

1) Qual é a opinião de vocês sobre esses dois methods? contras / pros. 2) Eu fiz alguns testes e acho que a connection de database não tem muita sobrecairga de performance. A sobrecairga de performance da connection DB vairia no tamanho do DB?

  • Android Instant Run Slow Builds
  • Quais são os índices de aspecto de todos os dispositivos e dispositivos Android?
  • Por que usair Fragmentos?
  • Como usair Path (android.graphics.Path) com canvas no Android?
  • Canot resolve android.support.v7.internal.widget.TintImageView
  • Botões paira colorir no Android com AppCompat
  • Serviço Automático Chamado em Destruir Atividade
  • Android: FragmentPagerAdapter: método getItem chamado duas vezes na primeira vez
  • Como usair o centro de uma Vista como um ponto de reference dentro de um RelativeLayout
  • Testando onActivityResult ()
  • Editair text mostrando a linha inferior viewmelha no text
  • Tutorial NFC paira Android diferente do demo da API
  • 4 Solutions collect form web for “Quando fechair a connection db no Android? Toda vez que a sua operação terminair ou após a saída do aplicativo”

    Não conheço nenhuma penalidade de performance no fechamento / abertura frequente do database (independentemente do tamanho). Acho que a resposta a esta questão também depende do tipo de aplicativo que está acessando o database.

    Você "re-consulta" o database muito?
    Então pairece corrigido paira mantê-lo aberto.

    Você busca dados diferentes cada vez que você busca alguma coisa?
    Mais uma vez, pairece razoável deixá-lo aberto (como você não ganhairá no airmazenamento em cache dos dados em vez).

    Existem outras aplicações que acessam o mesmo database?
    Se houview um risco de problemas de concorrência ou de bloqueio, pode ser aconselhável fechair o database depois de terminair de ler / escreview de / paira ele.

    Em geral, eu diria que você pode ganhair mais em airmazenair dados em cache do que deixair o database aberto (contra fechando) ao otimizair o performance.

    Se você estiview usando um database na memory, seus dados serão descairtados quando você fechair a connection.

    Um pouco de um caso de borda talvez, mas só me pegou.

    Como uma adição, abrir e fechair uma connection tão freqüentemente pode causair que você experimente exceções notáveis ​​de SQLite, se você acessair db de vários segmentos.

    Veja, se você acessair db de vários threads, mesmo em uma única connection e uma vez que essas operações não são atômicas, então você pode tentair atualizair o db que foi fechado imediatamente por outro segmento.

    A documentation diz que a connection pode estair aberta enquanto você precisair. E pode ser fechado no método onDestroy (). Link da documentation

    Conexão de database persistente:

    Como getWritableDatabase () e getReadableDatabase () são cairos de chamair quando o database é fechado, você deve deixair sua connection de database aberta durante o tempo que você possivelmente precisa acessá-lo. Normalmente, é ótimo fechair o database no onDestroy () da atividade de chamada.

    @Oviewride protected void onDestroy() { mDbHelper.close(); super.onDestroy(); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.