所以我有一个Room数据库,其中存储了一些用户。这是我用来访问数据库并获取数据的当前方法。
{{1}}
我的问题是有更好的方法来做到这一点。我在我的活动代码中做了所有这些,我想清理它。
你将如何实现类似静态或抽象类的东西,它具有对主线程/活动的回调,因此我可以监听响应。我还是异步任务的新手,所以如果我是愚蠢的话,我会道歉。
我还需要能够从始终运行的服务访问数据库。此外,我有时需要在调用OnDestroy()方法时保存一些数据,如果我从那里运行一个线程,则会导致崩溃。也许像IntentService这样的东西?但我需要能够调用不同的方法来获取和保存不同的对象。
答案 0 :(得分:-2)
在AppDatabase类中,您必须使用以下代码:
@Database(entities = {User.class},version = 1)
public abstract class AppDatabase extends RoomDatabase
{
public abstract userDAO userDao();
}
在UserDAo类中,您必须使用以下代码:
@Query("select * from User where user =:search")
User getUser(String search);
要使用这些方法,可以使用以下代码:
User user;
public static AppDatabase database=null;
if (database==null)
{
database= Room.databaseBuilder(getApplicationContext(),AppDatabase.class,"nameOfDatabase")
.allowMainThreadQueries().build();
}
user=database.userDao.getUser("testuser1");