有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓中异步任务返回值的java

我一直在尝试编写一个应用程序,但我遇到了一个问题。我有一个函数checkexistence,它检查列名为当前月份是否存在的weather列,还有一个函数在sql数据库中插入行,但我不知道如何使用这两个函数来检查当前月份是否存在,如果不存在,则添加当前月份

下面是包含代码的类

public class Repository {
    private MonthDetailsDAO monthDetailsDAO;
    private static Repository instance;
    private YearDetailsDAO yearDetailsDAO;
    private LiveData<List<MonthDetailsEntity>> liveMonthData;
    private LiveData<List<YearDetailsEntity>> liveYearData;
    private static final String LOG_TAG = "Database>>Repository";

    public Repository(Application application){
        Database database = Database.getInstance(application);
        yearDetailsDAO = database.yearDetailsDAO();
        liveYearData = yearDetailsDAO.getdata();
    }


    public void add_year(YearDetailsEntity yearDetailsEntity){
        new InsertAsyncTask(yearDetailsDAO).execute(yearDetailsEntity);

    }

    public void checkExistance(YearDetailsEntity yearDetailsEntity){
          new CheckExistanceAsyncTask(yearDetailsDAO).equals(yearDetailsEntity);
    }
    public LiveData<List<YearDetailsEntity>> getLiveYearData(){
        return liveYearData;
    }





    private static class CheckExistanceAsyncTask extends  AsyncTask<YearDetailsEntity , Void , Void>{
        private YearDetailsDAO yearDetailsDAO;
        public CheckExistanceAsyncTask(YearDetailsDAO yearDetailsDAO){
            this.yearDetailsDAO = yearDetailsDAO;
        }

        @Override
        protected Void doInBackground(YearDetailsEntity... yearDetailsEntities) {

            int m = yearDetailsEntities[0].getMonth();
            int y = yearDetailsEntities[0].getYear();
            YearDetailsEntity yearDetailsEntity1 = yearDetailsDAO.checkExistance(m , y);
            if(yearDetailsEntity1 == null) {
//insert now

            }
            else
                Log.d(LOG_TAG , "Month already present");
            return null;
        }
    }

    private static class InsertAsyncTask extends AsyncTask<YearDetailsEntity, Void, Void> {
        private YearDetailsDAO yearDetailsDAO;
        public InsertAsyncTask(YearDetailsDAO yearDetailsDAO){
            this.yearDetailsDAO = yearDetailsDAO;
        }

        @Override
        protected Void doInBackground(YearDetailsEntity... yearDetailsEntities) {
            yearDetailsDAO.add_year(yearDetailsEntities[0]);
            return null;
        }
    }

}



共 (0) 个答案