Java 从android中的异步任务返回值

Java 从android中的异步任务返回值,java,android,android-asynctask,Java,Android,Android Asynctask,我一直在尝试编写一个应用程序,但我遇到了一个问题。我有一个函数checkexistence,它检查列名为当前月份是否存在的weather列,还有一个函数在sql数据库中插入行,但我不知道如何使用这两个函数来检查当前月份是否存在,如果不存在,则添加当前月份 下面是包含代码的类 public class Repository { private MonthDetailsDAO monthDetailsDAO; private static Repository instance;

我一直在尝试编写一个应用程序,但我遇到了一个问题。我有一个函数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;
        }
    }

}


公共类存储库{
私人MonthDetailsDAO MonthDetailsDAO;
私有静态存储库实例;
私隐年鉴年鉴年鉴年鉴年鉴年鉴年鉴;
私有LiveData-liveMonthData;
私有LiveData-liveYearData;
私有静态最终字符串LOG_TAG=“数据库>>存储库”;
公共存储库(应用程序){
数据库=Database.getInstance(应用程序);
yearDetailsDAO=数据库。yearDetailsDAO();
liveYearData=yearDetailsDAO.getdata();
}
公共无效添加年(YearDetailsEntity YearDetailsEntity){
新建InsertAsyncTask(yearDetailsDAO).execute(yearDetailsEntity);
}
公共无效检查存在(YearDetailsEntity YearDetailsEntity){
新的CheckExistanceAsyncTask(yearDetailsDAO).equals(yearDetailsEntity);
}
公共LiveData getLiveYearData(){
返回liveYearData;
}
私有静态类CheckExistanceAsyncTask扩展异步任务{
私隐年鉴年鉴年鉴年鉴年鉴年鉴年鉴;
公开检查现有同步任务(YearDetailsDAO YearDetailsDAO){
this.yearDetailsDAO=yearDetailsDAO;
}
@凌驾
受保护的无效doInBackground(YearDetailSenties…YearDetailSenties){
int m=yearDetailSenties[0].getMonth();
int y=yearDetailSenties[0]。getYear();
YearDetailsEntity yearDetailsEntity1=yearDetailsDAO.checkExistance(m,y);
if(yearDetailsEntity1==null){
//现在插入
}
其他的
Log.d(Log_标签,“已存在的月份”);
返回null;
}
}
私有静态类InsertAsyncTask扩展了AsyncTask{
私隐年鉴年鉴年鉴年鉴年鉴年鉴年鉴;
公共插入同步任务(YearDetailsDAO YearDetailsDAO){
this.yearDetailsDAO=yearDetailsDAO;
}
@凌驾
受保护的无效doInBackground(YearDetailSenties…YearDetailSenties){
yearDetailsDAO.add_year(YearDetailsSenties[0]);
返回null;
}
}
}

您有两个任务。有两个函数是不相关的。您希望对两个异步任务的结果进行处理。请编辑您的帖子以使其可读。您有两个任务。有两个函数是不相关的。您希望对两个异步任务的结果进行处理。请编辑您的帖子,使其可读。