相关疑难解决方法(0)

如何检查房间数据库是否为空

我试图在进行网络调用之前检查房间数据库是否为空。但它显示以下错误。

错误:不确定如何将 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)

java android dao android-room

5
推荐指数
2
解决办法
8140
查看次数

标签 统计

android ×1

android-room ×1

dao ×1

java ×1