Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查sqlite android数据库是否打开或关闭_Android_Sqlite_Android Sqlite - Fatal编程技术网

检查sqlite android数据库是否打开或关闭

检查sqlite android数据库是否打开或关闭,android,sqlite,android-sqlite,Android,Sqlite,Android Sqlite,我创建了一个类,并从SQLiteOpenHelper扩展,以便在我的Android应用程序中复制和使用sqlite数据库。此类包含两个方法: public void OpenDatabase(); 及 用于打开和关闭数据库。 在其他活动和类中,我如何检查我的数据库现在处于打开或关闭状态?每次使用之前,通过调用单个SQLiteDatabase对象上的IsBlockedByCurrentThread或IsBlockedByOtherThreads,可以轻松检查数据库是否已在使用中。这将防止对数据库

我创建了一个类,并从
SQLiteOpenHelper
扩展,以便在我的Android应用程序中复制和使用sqlite数据库。此类包含两个方法:

public void OpenDatabase();

用于打开和关闭数据库。
在其他活动和类中,我如何检查我的数据库现在处于打开或关闭状态?

每次使用之前,通过调用单个SQLiteDatabase对象上的
IsBlockedByCurrentThread
IsBlockedByOtherThreads
,可以轻松检查数据库是否已在使用中。这将防止对数据库的多次操作,并防止应用程序发生潜在的崩溃

在类中设置一个标记以保持跟踪

class poop extends SQLiteOpenHelper{
    private boolean isDBOpenf = false;
    public void OpenDatabase(){
        // open database
        isDBOpenf = true;
    }
    public void CloseDatabase(){
        // close database
        isDBOpenf = false;
    }
    public boolean isDBOpen(){ return isDBOpenf; }
}

你的咒语应该是
打开它,使用它。关闭它
。永远不要让它开着@Rotwang-如果您有一些函数,这些函数在按顺序调用db的情况下执行不同的工作,那么让db保持打开状态是有意义的。例如,如果有更新单个列的函数,则需要更新三个列。一次打开和关闭一个dabase 3次可能会很费力row@pamblam为什么不能一次更新3列?我可以。对于涉及一批命令的操作,存在事务。再次:
打开它,使用它,关闭它
。这是一个咒语。我写程序已经32年了。这个咒语从来没有让我失望。当然它会起作用,我只是说,如果你知道你正在用数据库做一些事情,并且你有能力做这些事情,那么它并不总是有效的。@Pamblam事务是非常有效的。
class poop extends SQLiteOpenHelper{
    private boolean isDBOpenf = false;
    public void OpenDatabase(){
        // open database
        isDBOpenf = true;
    }
    public void CloseDatabase(){
        // close database
        isDBOpenf = false;
    }
    public boolean isDBOpen(){ return isDBOpenf; }
}