在我的申請使用一個SQLite DBhelper
類(延伸延伸SqliteOpenHelper
),其覆蓋我的onCreate,OnUpgrade的方法。此外,我需要創建一個DBManager
- 類以確保從其他類受控訪問我的數據庫....灌裝SQLite數據庫與數據一旦
現在我想爲我的數據庫設置數據。這些數據必須在我的應用第一次啓動時創建一次。我如何確保數據只從DBManager
創建一次?我想打電話給我的設置DB-數據的方法從DBManager
-class有乾淨的軟件設計....
這裏代碼例如,從DBManager
:
public class DBManager {
private static final String TAG = DBManager.class.getSimpleName();
private DatabaseHelper helper;
private static Context myContext;
private static DBManager instance;
private DBManager() {
myContext = MyApplication.getAppContext();
if (myContext == null)
throw new RuntimeException("MyApplication returned null-Context");
helper = new DatabaseHelper(myContext);
}
public static void init() {
if (null == instance) {
instance = new DBManager();
}
}
public static DBManager getInstance() {
if (instance == null) {
instance = new DBManager();
}
return instance;
}
// Some Methods to add Data and Get Data form SQL-Database
// a Method, which creats my Objects for first App-Start; have to be called once
}
創建進一步調用DBHelper類數據插入到源碼DBManager類的內部的功能。現在,當您的活動開始調用此DBManager類插入函數時。 – techroid
這不是我的目標......在你的解釋中,數據庫充滿了每一個新的活動lifecirle!我只想在我的應用第一次啓動時設置我的數據! – JavaNullPointer
在您的活動中創建一個布爾變量,並默認將其值設置爲true。那麼當你的活動首先開始檢查它的值時,如果它是真的,則調用DBManager類的插入方法,並將該布爾變量的值設置爲false。然後,每次您的活動開始時,它將檢查該布爾變量的值,每次都將爲false,並且您的活動不會調用插入函數。 – techroid