2016-08-05 115 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; } 
}