2016-08-05 109 views
-1

我创建了一个类,并从SQLiteOpenHelper扩展了我的Android应用程序中的复制和使用sqlite数据库。这个类包含两个方法:检查sqlite安卓数据库是打开还是关闭

public void OpenDatabase(); 

public void CloseDatabase(); 

用于打开和关闭数据库。 在其他活动和类中如何检查我的数据库现在是打开还是关闭?

+0

你的口头禅应该是'打开它,使用它。关闭它'。切勿将其打开! –

+0

@Rotwang - 如果你的函数在按顺序调用db的情况下执行单独的工作,那么让它开放是有意义的。例如,如果您有更新单个列的功能,并且需要更新三列。可以通过征税来连续3次打开和关闭一个dabase –

+0

@pamblam为什么不能执行一次更新3列的UPDATE?我可以。对于涉及一批命令的操作,有**事务**。再次:“打开它,使用它,关闭它”。这是一个口头禅。我从32年开始编写程序。这个咒语**从来没有失败过**。 –

回答

0

您可以在每次使用该SQLiteDatabase对象之前,通过调用isDbLockedByCurrentThreadisDbLockedByOtherThreads轻松检查数据库是否已被使用。这将防止多个操作到数据库,并从潜在的崩溃

0

设置标志保存在你的类的应用程序来跟踪..

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; } 
}