我试图在进行网络调用之前检查房间数据库是否为空。但它显示以下错误。
错误:不确定如何将 Cursor 转换为此方法的返回类型 (java.lang.Integer)。
我一直在做的是,当应用程序启动时,我正在检查房间数据库中的行数,如果它为空,那么我正在进行网络调用。
下面是我的代码。
UserDao.java
@Dao
public interface UserDao {
@Query("SELECT * FROM Users")
LiveData<Integer> isDbEmpty();
}
Run Code Online (Sandbox Code Playgroud)
用户存储库.java
public class UserRepository {
private Context context;
private UserDb userDb;
private LiveData<Integer> checkDb;
private UserDao userDao;
public UserRepository(Context context) {
this.context = context;
userDb = UserDb.getInstance(context);
userDao = userDb.userDao();
checkDb = userDao.isDbEmpty();
}
public LiveData<Integer> isDbEmpty(){
return checkDb;
}
}
Run Code Online (Sandbox Code Playgroud)
UserViewModel.java
public class UserViewModel extends AndroidViewModel {
private UserRepository repo;
private LiveData<Integer> checkDb;
public UserViewModel(@NonNull Application application) {
super(application); …Run Code Online (Sandbox Code Playgroud)