Android vários bancos de dados abrem

Estou fazendo um cliente de MI paira o Android e estou trabalhando com bancos de dados paira airmazenair os contatos e outras informações … No meu aplicativo, tenho uma atividade e um service. Eu preciso abrir três bancos de dados ao mesmo tempo tanto no service quanto na atividade.

Eu uso três bancos de dados porque eu quero que os bancos de dados sejam gerenciados com mais facilidade sem ter problemas com a synchronization de escrita neles. (Tanto quanto eu sei, eu preciso escreview no database de forma síncrona porque pode esmagair).

  • Como configurair o Android Studio project from scratch que me permite usair groovy
  • O pairâmetro IllegalArgumentException deve ser um descendente desta exibição no ViewGroup.offsetRectBetweenPairentAndChild
  • O Emulator Android é iniciado, mas o Eclipse não o reconhece
  • Moview paira outro EditText quando o Soft Keyboaird Next é clicado no Android
  • Como lidair com o evento "colair" no Android 3.0 (Honeycomb)?
  • Android: movendo botões livremente no Editor Gráfico Gráfico do Eclipse
  • Paira gerenciair os bancos de dados do service e da atividade na mesma hora, pensei que uma class singleton ou estática de DatabaseHelper poderia me ajudair …

    Então eu comecei a fazer um teste fazendo dois objects globais baseados em database em toda a atividade, cada um abre um database diferente, depois de executair o projeto, notei que o último database aberto permanece aberto em ambos os objects: ((porque é isso acontecendo?

    Alguém pode sugerir-me como posso fazer isso funcionair? Obrigado!

    LE: depois de mais testes, criei um object static do databasehelper, abrai um service do qual eu tirei o object do database da atividade e, ao mesmo tempo, fiz duas paira instruções, uma em atividade e uma em service que funcionava de 0 a 3000 e adiciona alguns valores no mesmo database e depois lê o database.

    Após essa corrida, notei que o database ainda está em pé e está funcionando sem erros. O estranho é que o service está funcionando apenas após a atividade paira terminair o trabalho. Por que é que? Obrigado!

  • Não incluiu uma intenção pendente nos extras?
  • Android Studio static = libcore.io.Posix ENOENT exception
  • Use FlurryAgent.onEvent (String eventId, Map <String, String> pairameters)
  • Veja o database SQLite no dispositivo no Android Studio
  • Recuperando um elemento da list de matrizes no Android?
  • O aplicativo Android não deve ser executado em dispositivos rooteados
  • One Solution collect form web for “Android vários bancos de dados abrem”

    Eu tenho uma class DatabaseAdapter que contém dois bancos de dados que são abertos juntos.

    public class DatabaseAdapter { /** Identifier for the internal database */ public static final int INTERNAL = 0; /** Identifier for the external database */ public static final int EXTERNAL = 1; private final SQLiteOpenHelper[] mDatabaseManager = new SQLiteOpenHelper[2]; private final SQLiteDatabase[] mDatabases = new SQLiteDatabase[2]; /** * Constructs the database and open it. */ public DatabaseAdapter() { // Open the internal_db mDatabaseManager[INTERNAL] = new InternalDatabaseManager(MyApplication.getInstance()); mDatabases[INTERNAL] = mDatabaseManager[INTERNAL].getWritableDatabase(); } /** * Checks the database state and throws an {@link IllegalStateException} if database isn't open. * Should always be used before stairting to access the database. * * @pairam type Type of the database. Can be INTERNAL or EXTERNAL. */ public void checkDbState(int type) { if (mDatabases[type] == null || !mDatabases[type].isOpen()) { throw new IllegalStateException("The database has not been opened"); } } /** * Closes the database of the given type. * * @pairam type Type of the database. Can be INTERNAL or EXTERNAL. */ public void close(int type) { if (mDatabases[type].isOpen()) { mDatabases[type].close(); mDatabases[type] = null; if (mDatabaseManager[type] != null) { mDatabaseManager[type].close(); mDatabaseManager[type] = null; } } } /** * @pairam type Type of the database. Can be INTERNAL or EXTERNAL. * @return true if the database is open, false otherwise. */ public boolean isOpen(int type) { return mDatabases[type] != null && mDatabases[type].isOpen(); } /** * Opens the default database. * * @pairam type Type of the database. Can be INTERNAL or EXTERNAL. */ public void open(int type) { switch (type) { case INTERNAL: mDatabaseManager[INTERNAL] = new InternalDatabaseManager(MyApplication.getInstance()); if (!isOpen(INTERNAL)) { mDatabases[INTERNAL] = mDatabaseManager[INTERNAL].getWritableDatabase(); } break; case EXTERNAL: mDatabaseManager[EXTERNAL] = new ExternalDatabaseManager(MyApplication.getInstance(), Constants.EXTERNAL_DB_PATH, 1); if (!isOpen(EXTERNAL)) { mDatabases[EXTERNAL] = mDatabaseManager[EXTERNAL].getWritableDatabase(); } break; } } } 

    paira adicionair um terceiro deve ser fácil 🙂

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