meiner Lösung nicht nennen kann, die aber nicht wirklich, wenn es sehr optimal ist, nicht auf Anwendung abhängig war, weil ein Android App nur eine Anwendungsklasse in der erklärt hat Manifest der Hauptanwendung, in der die Bibliothek ausgeführt wird. Also entschied ich mich, eine Klasse mit dem Singleton-Muster zu erstellen und von dort aus bei Bedarf zu DaoSession zu telefonieren. Ich lasse den Code für den Fall, dass es ihnen dient, oder wenn sie es verbessern können.
ist dies die Klasse
public class DaoHelper {
private static volatile DaoHelper daoInstance;
private DaoSession daoSession;
private DaoHelper(Context context){
//Prevent form the reflection api
if(daoInstance!=null){
throw new RuntimeException("Use getInstance() method to get the single instance of this class.");
}else{
CustomDaoMaster.OpenHelper helper = new CustomDaoMaster.OpenHelper(context,
"db",null);
SQLiteDatabase db = helper.getWritableDatabase();
CustomDaoMaster daoMaster = new CustomDaoMaster(db);
daoSession = daoMaster.newSession();
}
}
public static DaoHelper getInstance(Context context){
//Double check locking pattern
if(daoInstance==null){
synchronized (DaoHelper.class){//Check for the second time.
//if there is no instance available... create new one
if(daoInstance==null)daoInstance = new DaoHelper(context);
}
}
return daoInstance;
}
public DaoSession getDaoSession(){
return daoSession;
}
}
Und eine Möglichkeit, es
DaoSession daoSession = DaoHelper.getInstance(context).getDaoSession();
zu verwenden