【发布时间】:2013-07-09 12:46:45
【问题描述】:
在我的应用程序中,我使用 SQLite DBhelper 类(扩展扩展 SqliteOpenHelper),它覆盖了我的 onCreate、OnUpgrade 方法。我还需要创建一个DBManager-class 以确保从其他类对我的数据库的受控访问....
现在我想为数据库设置我的数据。此数据必须在我的应用程序第一次启动时创建一次。如何确保数据只从DBManager 创建一次?我想从DBManager-class 调用我的设置 DB-Data 的方法来进行干净的软件设计....
这是来自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
}
【问题讨论】:
-
在 DBManager 类中创建一个函数,进一步调用 DBHelper 类将数据插入到 sqlite。现在,当您的活动开始时调用此 DBManager 类插入函数。
-
这不是我的目标......在你的解释中,数据库充满了每一个新的活动生命周期!我只想在我的应用程序第一次启动时设置我的数据!
-
在您的活动中创建一个布尔变量,并将其值默认设置为 true。然后,当您的活动开始时首先检查它的值,如果它是真的调用 DBManager 类的插入方法并将该布尔变量的值设置为假。然后,每次您的活动开始时,它都会检查该布尔变量的值,每次都会为假,并且您的活动不会调用插入函数。
-
同样的错误解决方法!!!下一次启动我的应用程序-> 再次设置我的应用程序的数据!!
标签: android sql android-sqlite