替代 AsyncTask,因为它已被弃用

时间:2021-07-26 12:18:48

标签: android kotlin

我使用了 AsyncTask,但它已被弃用。那么我应该如何重写我的程序。

class DBAsyncTask(val context: Context, val restaurantEntity: RestaurantEntity, val mode: Int) :
    AsyncTask<Void, Void, Boolean>() {

    val db = Room.databaseBuilder(context, RestaurantDatabase::class.java, "restaurant-db").build()

    override fun doInBackground(vararg params: Void?): Boolean {
        
        when (mode) {

            1 -> {
                val restaurant: RestaurantEntity =
                    db.restaurantDao().getAllRestaurant(restaurantEntity.restaurant_Id)
                db.close()
                return restaurant != null

            }

            2 -> {
                db.restaurantDao().insertRestaurant(restaurantEntity)
                db.close()
                return true

            }

            3 -> {
                db.restaurantDao().deleteRestaurant(restaurantEntity)
                db.close()
                return true

            }

        }

        return false
    }
}

我应该如何重写它并为数据库创建实例?

 val checkFav = DBAsyncTask(context, restaurantEntity, 1).execute()
        val isFav = checkFav.get() 

我是这样用的,因为我在adapter里面用的,不知道怎么实现协程。

0 个答案:

没有答案
相关问题