如何从Android中的Worker类访问Rooms数据库的存储库?

伊恩·贝尔

Worker在应用程序中有一个类,希望从Rooms数据库中获取数据。由于我使用的是MVVM体系结构,如何使用Worker类中的存储库从数据库中获取数据

代码 -

工人阶级

public class SendNotification extends Worker {


    public SendNotification(@NonNull Context context, @NonNull WorkerParameters workerParams) {
        super(context, workerParams);
    }

    @RequiresApi(api = Build.VERSION_CODES.M)
    @NonNull
    @Override
    public Result doWork() {

        String flightnumber = getInputData().getString("flight");
        String date = getInputData().getString("date");
       

        sendNotification(flightnumber,date);

        return Result.success();

    }}

资料库

public class FlightRepository {

    private FlightDao flightDao;
    private LiveData<List<Flight>> allFlights;

    public FlightRepository(Application application) {
        FlightDatabase database = FlightDatabase.getInstance(application);
        flightDao = database.flightDao();
        allFlights = flightDao.getAllFlights();

    }

    public void insert(Flight flight) {
        new InsertFlightAsyncTask(flightDao).execute(flight);
    }

    public void update(Flight flight) {
        new UpdateFlightAsyncTask(flightDao).execute(flight);
    }

    public void delete(Flight flight) {
        new DeleteFlightAsyncTask(flightDao).execute(flight);
    }

    public void deleteAllFlights() {
        new DeleteAllFlightsAsyncTask(flightDao).execute();
    }

    public LiveData<List<Flight>> getAllFlights() {
        return allFlights;
    }

    public Flight getFlight(String flightNumber, String date){
        return flightDao.getFlight(flightNumber,date);
    }

    public boolean existsFlight(String flightNumber, String date){
        return flightDao.existsFlight(flightNumber, date);

}

达里尔·贝利斯(Darryl Bayliss)

你应该能够创建的实例FlightRepository里面Worker

public class SendNotification extends Worker {

  private FlightRepository flightRepo;


public SendNotification(@NonNull Context context, @NonNull WorkerParameters workerParams) {
    super(context, workerParams);
    this.flightRepo = new FlightRepository(context)
}

@RequiresApi(api = Build.VERSION_CODES.M)
@NonNull
@Override
public Result doWork() {

    String flightnumber = getInputData().getString("flight");
    String date = getInputData().getString("date");
   
    // Do what is needed with flightRepo

    sendNotification(flightnumber,date);

    return Result.success();

}}

在这里做一些假设。我愿意FlightDatabase接受Context而不是Application我不确定为什么数据库需要访问Application

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在库类中访问数据库?

来自分类Dev

从其他类创建的访问数据库(Android/JAVA)

来自分类Dev

在数据库反模式中存储类名称?

来自分类Dev

如何使LiveData getValue()函数从Android的Rooms数据库返回项目列表?

来自分类Dev

如何使LiveData getValue()函数从Android的Rooms数据库返回项目列表?

来自分类Dev

从Grails中的Java类访问数据库

来自分类Dev

从Grails中的Java类访问数据库

来自分类Dev

如何在Delphi 10.3中存储单个数据库以进行多设备访问?

来自分类Dev

如何访问存储在数组中的数据库,特别是特定的行和列

来自分类Dev

如何在 XPage 中存储 IBM Notes 数据库对象变量并稍后访问它

来自分类Dev

如何将PropertyBag类存储到数据库中

来自分类Dev

如何基于数据库中存储的内容创建正确的继承类

来自分类Dev

如何使用JDBC将类存储到数据库中

来自分类Dev

如何将PropertyBag类存储到数据库中

来自分类Dev

如何在实体类中存储数据库名称

来自分类Dev

如何将静态类中的数据存储到ASP中的数据库。网?并修改静态类的值?

来自分类Dev

从父类访问数据库

来自分类Dev

如何显示数据库中存储的多行数据

来自分类Dev

如何确定我的数据存储在elgg数据库中?

来自分类Dev

如何从数据库中解码 ACF 存储的数据

来自分类Dev

如何用数据库中的数据填充类

来自分类Dev

如何将当前时间与Android中数据库中存储的时间进行比较

来自分类Dev

如何在android中读取特定的消息格式并存储在sqlite数据库中?

来自分类Dev

如何将当前时间与Android中存储在数据库中的时间进行比较

来自分类Dev

数据库设计:如何将用户的新闻偏好存储在MySQL数据库中?

来自分类Dev

在Android的SQLite数据库中存储日期和时间

来自分类Dev

在Android的SQLite数据库中存储日期和时间

来自分类Dev

如何通过传递数据库名称访问WPF中的SQL Server数据库

来自分类Dev

如何使用Hanami /存储库访问多个数据库

Related 相关文章

  1. 1

    如何在库类中访问数据库?

  2. 2

    从其他类创建的访问数据库(Android/JAVA)

  3. 3

    在数据库反模式中存储类名称?

  4. 4

    如何使LiveData getValue()函数从Android的Rooms数据库返回项目列表?

  5. 5

    如何使LiveData getValue()函数从Android的Rooms数据库返回项目列表?

  6. 6

    从Grails中的Java类访问数据库

  7. 7

    从Grails中的Java类访问数据库

  8. 8

    如何在Delphi 10.3中存储单个数据库以进行多设备访问?

  9. 9

    如何访问存储在数组中的数据库,特别是特定的行和列

  10. 10

    如何在 XPage 中存储 IBM Notes 数据库对象变量并稍后访问它

  11. 11

    如何将PropertyBag类存储到数据库中

  12. 12

    如何基于数据库中存储的内容创建正确的继承类

  13. 13

    如何使用JDBC将类存储到数据库中

  14. 14

    如何将PropertyBag类存储到数据库中

  15. 15

    如何在实体类中存储数据库名称

  16. 16

    如何将静态类中的数据存储到ASP中的数据库。网?并修改静态类的值?

  17. 17

    从父类访问数据库

  18. 18

    如何显示数据库中存储的多行数据

  19. 19

    如何确定我的数据存储在elgg数据库中?

  20. 20

    如何从数据库中解码 ACF 存储的数据

  21. 21

    如何用数据库中的数据填充类

  22. 22

    如何将当前时间与Android中数据库中存储的时间进行比较

  23. 23

    如何在android中读取特定的消息格式并存储在sqlite数据库中?

  24. 24

    如何将当前时间与Android中存储在数据库中的时间进行比较

  25. 25

    数据库设计:如何将用户的新闻偏好存储在MySQL数据库中?

  26. 26

    在Android的SQLite数据库中存储日期和时间

  27. 27

    在Android的SQLite数据库中存储日期和时间

  28. 28

    如何通过传递数据库名称访问WPF中的SQL Server数据库

  29. 29

    如何使用Hanami /存储库访问多个数据库

热门标签

归档