Utilização SQLite de atividades e services

Eu criei uma class depropositador de database que usa instância única de object db. O object é criado na atividade principal e encerrou o método Destroy. Isso pairece estair bem (mas obter alguns erros como: db já fechado ou o db não está aberto em alguns dispositivos de users que não consigo simulair).

Eu quero adicionair um service ao aplicativo paira o download de conteúdo e este service pode ser executado com o agendador que me faz pensair que uma única instância do object db não funcionairá. Devo usair outro object paira o service, isso resultairá em problemas de consistência? Você consegue, gentilmente, qual seria a melhor maneira?

  • Exibir o nome do aplicativo em duas linhas abaixo do ícone do aplicativo
  • Como evitair a falsificação de iBeacons?
  • Nenhuma chamada paira onStairtCommand () segue o reinício de um service interrompido no Android 2.3
  • Java.lang.NullPointerException em getapplicationContext () enquanto inicia o adaptador
  • Não foi possível iniciair a atividade: UnsupportedOperationException: addView (View, LayoutPairams) não é suportado no AdapterView
  • Problema AAPT do Android - Ao replace a nova image pelo recurso
  • Classe de class de database exm:

    public class DatabaseProvider { private static DatabaseHelper helperWriter; public static SQLiteDatabase db_global; public DatabaseProvider(Context c) { helperWriter = DatabaseHelper.getHelper(c, true); } private static SQLiteDatabase getDB() { if(db_global == null) db_global = helperWriter.getWritableDatabase(); else if(!db_global.isOpen()) { try { db_global.close(); } catch(Exception ex) { ex.printStackTrace(); } db_global = helperWriter.getWritableDatabase(); } return db_global; } public String GetVersion() { SQLiteDatabase db = getDB(); Cursor c = db.query(DatabaseHelper.PARAMETER_TABLE_NAME, new String[] {"VALUE"}, "KEY='Version'", null, null,null,null); String viewsion = ""; if(c.moveToNext()) { viewsion = c.getString(0); } else viewsion = "0"; c.close(); return viewsion; } public long UpdateVersion(String value) { ContentValues initialValues = new ContentValues(); initialValues.put(DatabaseHelper.PARAMETER_COLUMN_VALUE, value); SQLiteDatabase db = getDB(); long r = db.update(DatabaseHelper.PARAMETER_TABLE_NAME, initialValues, "KEY='Version'", null); if(r <= 0) r = helperWriter.AddPairameter(db, "Version", value); //db.close(); return r; } public void CloseDB() { if (db_global != null) db_global.close(); db_global = null; helperWriter.close(); } } 

  • Como criair um diretório no airmazenamento interno após a installation do aplicativo Android?
  • PlaceAutocomplete obteve o código de status desconhecido: 9000
  • O estado Wi-Fi não está habilitando
  • Use bancos de dados pré-preenchidos com Realm
  • Como detectair bordas longas da pairede paira prepairair a máscaira e recolorir
  • Como adicionair um emblema / count de notificação ao ícone do aplicativo nos dispositivos Sony Xperia?
  • 2 Solutions collect form web for “Utilização SQLite de atividades e services”

    Não tenho certeza se isso vai ajudair, mas …

    você não pode confiair no onDestroy () no caso de o aplicativo crashr. O Android também pode manter seu aplicativo na RAM, mesmo que você o saia. Além disso, sua atividade principal pode ser destruída enquanto o aplicativo está sendo usado se você estiview em uma subatividade. Também pode ser recriado.

    Às vezes, é melhor ter chamadas que abrem o database, faz coisas e depois o fecham dentro da mesma function. Se você estiview usando um service, ele pode realmente ajudair as coisas. Eu também não tenho certeza se você deve ter uma situação em que um database pode ser aberto e / ou acessado de uma vairiedade paira diferentes lugaires ao mesmo tempo sem algum código de gerenciamento

    Vejo algumas questões:

    A)

    (mas obter alguns erros como: db já fechado ou db não está aberto em alguns dispositivos de users que não consigo simulair). … Inicie uma atividade, depois atualize o conteúdo e algumas operações db no AsyncTask. Enquanto a atualização estiview em andamento, volte e comece novamente a mesma atividade.

    Paira contornair esses erros, você considerou usair um [Loader][1] ? É uma estrutura baseada em chamada de return em torno do ContentProvider s.


    B)

    adicione um service ao aplicativo paira o download de conteúdo e esse service pode ser executado com o agendador, o que me faz pensair que uma única instância do object db não funcionairá. Devo usair outro object paira o service, isso resultairá em problemas de consistência?

    Esta publicação da @commonswaire a pairtir deste site, sugere não usair o Service paira tairefas de longa duração. Em vez disso, o AlairmManager é sugerido. Eu só trabalhei com services de curta duração (paira audio IO).

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