从Java代码访问kotlin挂起功能

时间:2020-05-22 12:23:20

标签: android kotlin android-room kotlin-coroutines

我有一个Room数据库接口,它是一个Kotlin文件,并且由于我不希望这些调用在主线程上运行,所以我正在使用kotlin Suspend。我该如何从Java使用暂停功能

我有两种方法要在其中插入User,而另一种方法是要检索用户

这些是我在java文件中遇到的错误

enter image description here

代码

Room Dao界面

UserDao

@Dao
interface UserDao {

    fun getAllUsersAsync(): CompletableFuture<List<User>> =
        GlobalScope.future { getAllUsers() }

    @Query("SELECT * FROM user")
    suspend fun getAllUsers(): List<User>

    @Insert
    suspend fun insertUser(user: User): Long
}

Java代码

private Long addUser(com.i6systems.in2plane.AppDatabase.User user) {
    return userDao.insertUser(user);
}

private List<com.i6systems.in2plane.AppDatabase.User> getUsers () {
    return userDao.getAllUsersAsync();
}

非常感谢您的帮助

谢谢 R

0 个答案:

没有答案