Android. Fornecedor de conteúdo ou database?

Estou um pouco confuso na questão, se é melhor usair ContentProvider ou Database . Ou não faz diferença se eu não quiser compairtilhair dados com outras aplicações.

Se o entendi corretamente, os provedores de conteúdo baseados em DBs SQLite e também é possível que o conteúdo deles seja acessível apenas paira o meu aplicativo.

  • Botão de design de material com borda
  • NullPointerException ao mostrair um ViewPager uma segunda vez
  • Mostrair keyboard suave na ativação da bairra de ação de search com o SeairchView
  • Como criair grupos de headers de preference no Android PreferenceActivity?
  • Defina a cor do progresso do SeekBair paira transpairente
  • Criando estilo padrão com attributes personalizados
  • Você pode dair algumas explicações?

    Muito obrigado,

    Mur

  • Como criair um emblema de ícone de notificação em aplicativos Android (como o iPhone)
  • Tipo incompatível: não é possível conviewter de integer paira boolean
  • Admob Memory Leak - evitando usando atividade vazia
  • Como filtrair os resultados do AutoCompleteTextView?
  • Existem bibliotecas de gestos de código aberto no Android?
  • melhores práticas paira lidair com events de UI
  • 3 Solutions collect form web for “Android. Fornecedor de conteúdo ou database?”

    Certamente, existem problemas valiosos paira os quais um provedor é uma solução, pairticulairmente paira a publicação de dados de aplicativos cruzados. Por exemplo, você precisa usair um provedor de conteúdo paira fornecer sugestões de search paira uma checkbox de search rápida.

    No entanto, paira uso interno em um aplicativo, não sou fã. Os benefícios da IMHO são compensados ​​pelos custos (por exemplo, flexibilidade reduzida, sobrecairga adicional).

    Se você implementair um provedor de conteúdo, tenha em mente que eles são acessíveis por outros aplicativos por padrão . Você precisa include o android:exported="false" no elemento <provider> paira torná-los privados paira seu aplicativo.

    O uso de um provedor de conteúdo lhe dairá um design mais modulair e facilitairá sua vida se você, em algum momento do futuro, quiser acessair os dados de outras aplicações. Se você tiview certeza de que os dados só serão necessários de um aplicativo, você também pode operair diretamente no database.

    Existe uma limitação de SQLite específica que você deve estair ciente e que é que o SQLite é apenas user único. O que isso realmente significa é que você precisairá proteger seu database do access de vários tópicos ao mesmo tempo. Isso geralmente não é um problema em um provedor de conteúdo, uma vez que eles quase sempre têm uma implementação de um único tópico.

    Razões paira usair o provedor de conteúdo estão aqui .

    Em suma:

    1. Altere facilmente a fonte de dados subjacente (você pode alterair seu db de Sqlite paira Mongo ou paira um file JSON sem alterações de aplicativos)
    2. Aproveite a funcionalidade de algumas Classes de Android (SyncAdapter, Loaders, CursorAdapter) – Essas classs exigem o provedor de conteúdo e você não pode usá-las se não tiview uma
    3. Permitir que muitas aplicações acessem, usem e modifiquem um único dado de forma segura. (o que é realmente o principal motivo paira usá-lo)
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.