【问题标题】:getting error in saving data in Room Database like Images , emails and name of users在 Room 数据库中保存数据时出错,例如图像、电子邮件和用户名
【发布时间】:2020-12-17 01:29:50
【问题描述】:

希望你们一切都好... 我正在开发一个用于测试和学习目的的简单应用程序,它将用户的姓名、电子邮件和图像存储到房间数据库中。 我是 Room 数据库的新手,我在 youtube 上观看了许多教程,以了解如何在 Android 应用程序中实现 ROOM。主要问题是在教程中他们都使用 AsyncTask 将信息存储到 ROOM 中。但是当我按照这些教程进行操作时,我才知道 AsyncTask 已被弃用,这是我没有在 MainActivity 中获取 MyDatabase.getInstance() 方法的主要原因。 所以告诉我现在该做什么.. 除了 AsyncTask,我还应该实现什么。 我也想了解如何将图像存储到 RoomDatabase 这是我收到错误的代码...

class InsertAsyncTask extends AsyncTask<User, Void, Void> {

    @Override
    protected Void doInBackground(User... users) {
          //this is the line where i am getting the error. getInstance method becomes red.
          //UserDatabase.getInstance(getApplicationContext()).dao().insertUser(users[0]);
        return null;
    }
}

【问题讨论】:

    标签: java android database android-room android-jetpack


    【解决方案1】:

    您可以使用 RxJAVA 对 Room 执行数据库操作。

    例如

    Observable.fromCallable(()->UserDatabase.getInstance(getApplicationContext()).dao().insertUser(users[0]))
         .subscribeOn(Schedulers.io())
         .subscribe(...);
    

    要在数据库中存储图像,您可以查看以下链接 How insert image in room persistence library?

    从我的角度来看,更好的解决方案是存储图像路径而不是将图像存储在数据库中。

    【讨论】:

      猜你喜欢
      • 2022-11-19
      • 1970-01-01
      • 2018-02-13
      • 2021-07-02
      • 2012-12-24
      • 1970-01-01
      • 2020-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多