相关疑难解决方法(0)

Android打开和关闭数据库

我在这里阅读了很多关于StackOverflow的讨论,还有很多关于互联网网站的讨论:我什么时候应该打开和关闭我的sqlite数据库.我已经阅读了不同时期的各种回应和猜测.所以最后我比以前更困惑.人们建议:

  1. 在onDestroy()中关闭你的数据库注释:"OnDestroy()总是不被调用!使用onStop()!" - >所以onStart()必须打开它.

  2. 数据库有效地工作.无需关闭它.

  3. 打开数据库一次,创建一个字段和一个访问者.

  4. 使用后关闭.

还有很多...

那么2016年什么是正确的呢?请不要猜!

Examplelinks:

Android:打开和关闭SQLite数据库

Android关闭数据库

database sqlite android android-sqlite

4
推荐指数
1
解决办法
4122
查看次数

我什么时候应该关闭DatabaseHelper?

参考链接,如果您只有一个连接,何时是关闭连接的好时机?我总是在后台运行服务.什么时候打电话给这个close()功能好?有什么建议?

android android-sqlite

3
推荐指数
1
解决办法
1232
查看次数

Android sqlite多线程

我正在编写一个Android应用程序sqlite.有许多活动和一项服务.我使用来自多个线程的数据库.它完美地Android 2.X运行,但是一旦我在它中运行Android 3.X它总是抛出这个错误,并且Force Close:

05-04 22:17:04.815: I/SqliteDatabaseCpp(8774): sqlite returned: error code = 5, msg = database is locked, db=/data/data/xxx/databases/im
05-04 22:17:04.815: E/SqliteDatabaseCpp(8774): sqlite3_open_v2("/data/data/xxx/databases/im", &handle, 6, NULL) failed
05-04 22:17:04.835: E/SQLiteDatabase(8774): Failed to open the database. closing it.
05-04 22:17:04.835: E/SQLiteDatabase(8774): android.database.sqlite.SQLiteDatabaseLockedException: database is locked
05-04 22:17:04.835: E/SQLiteDatabase(8774):     at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
05-04 22:17:04.835: E/SQLiteDatabase(8774):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:983)
05-04 22:17:04.835: E/SQLiteDatabase(8774):     at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:956)
05-04 22:17:04.835: E/SQLiteDatabase(8774):     at android.database.sqlite.SQLiteDatabase.openOrCreateDatabase(SQLiteDatabase.java:1021)
05-04 22:17:04.835: E/SQLiteDatabase(8774):     at android.app.ContextImpl.openOrCreateDatabase(ContextImpl.java:790)
05-04 22:17:04.835: …
Run Code Online (Sandbox Code Playgroud)

sqlite multithreading android android-loadermanager

3
推荐指数
1
解决办法
2万
查看次数

Sqlite数据库Pragma的例外?

当应用程序崩溃我得到这个错误我不明白这个错误说的错误.在这里我把邮件的崩溃日志报告.检查下面我使用下面的方法打开和关闭数据库我已经定义了2954行错误

private void Open_Database() 
    {
        //this is 2954 line 
        mDB_Helper = new DB_Helper(this);
        mSQLiteDatabase = mDB_Helper.getWritableDatabase();

    }

    /* Closing DB */
    private void Close_Database() 
    {

        if (mSQLiteDatabase != null && mDB_Helper != null) 
        {

            mSQLiteDatabase.close();
            mDB_Helper.close();

        }

    }

public void deletedata()
{
     deleteplaylist.clear();

     Open_Database();        
     deleteplaylist=new ArrayList<HashMap<String,String>>();
     deleteplaylist=mDB_Helper.DeleteRecordDetail(mSQLiteDatabase, DB_Constant.TABLE.MYFILES,DB_Constant.MYFILES.USERID, sid);

     Close_Database();


     for(int m=0;m<deleteplaylist.size();m++)
     {
            String getid=deleteplaylist.get(m).get(DB_Constant.MYFILES.FILE_ID).toString();
            String getpath=deleteplaylist.get(m).get(DB_Constant.MYFILES.FILE_PATH).toString();

            Open_Database();

            DB_Helper.DeleteData(mSQLiteDatabase, DB_Constant.TABLE.MYFILES,DB_Constant.MYFILES.USERID, sid,DB_Constant.MYFILES.FILE_ID,getid);
            File file = new File(getpath);
            boolean deleted = file.delete();

            Close_Database();


    }
Run Code Online (Sandbox Code Playgroud)

}

.

2014-11-08-19-56-30
Yoddle

Error Report collected on …
Run Code Online (Sandbox Code Playgroud)

sqlite crash android

3
推荐指数
1
解决办法
5188
查看次数

Android,线程和数据库

我需要编写一些具有几个线程的应用程序,这些线程将与本地数据库一起使用.我担心这些线程会在数据库之间竞争.有没有简单的解决方案来解决这个问题?我读到我可以使用内容提供商因为那时只有一个与数据库的连接,但也许有另一个解决方案?感谢您的所有建议和提示.

database multithreading android

2
推荐指数
1
解决办法
140
查看次数

如何并行执行线程并在没有数据库锁的情况下在sqlite数据库中插入相应的数据?

我需要调用多个api,每个api都在单独的线程中执行,并将相应的数据从响应插入到sqlite数据库而不会导致锁定.任何人都可以通过我可以参考的工作实例来帮助我.

sqlite multithreading android

2
推荐指数
1
解决办法
2558
查看次数

单个应用程序中的多个 ContentProvider

为每个表创建 ContentProvider 是否可以意味着单个应用程序中存在多个内容提供程序

\n\n

出于各种原因我想这样做。

\n\n

1-随着我的应用程序的增长,单个 ContentProvider 类变得臃肿且混乱。

\n\n

2-我不想与另一个应用程序共享整个 ContentProvider 类。我只想共享几个或仅一张表。\xef\xbb\xbf

\n

android android-contentprovider

0
推荐指数
1
解决办法
1615
查看次数