سلام و احترام
سوالی که دارم این هست که ما در پروژه لیست وظایف اومدیم (قسمت لایبرری Room)و کلاسی به نام AppDatabase ساختیم
اما سوال من اینجاست که چگونه میتوانیم متد getAppDatabase رو در یک Thread جداگانه اوکی کنیم که از متد زیر استفاده نکنیم
.allowMainThreadQueries()
من چنین کاری کردم(کد زیر) ولی اپم فورس کلوز داد(حتی عمل return هم با Handler به UiThread سپردم)
public abstract class AppDatabase extends RoomDatabase {
private static AppDatabase appDatabase;
public static AppDatabase getAppDatabase(final Context context) {
//LazeInitilization
if(appDatabase ==null){
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
appDatabase = Room.databaseBuilder(context.getApplicationContext() , AppDatabase.class , "db_app")
.build();
}
});
thread.start();
}
return appDatabase;
}
public abstract TaskDao getTaskDao();
}