Я хочу получить некоторые данные из своей базы данных Room, находясь внутри задачи Async.
Таким образом, я выполняю некоторый код в асинхронной задаче, и мне нужна некоторая информация из базы данных Room. Я не использую оперативные данные, поэтому я должен получить информацию в отдельном потоке и мне нужен немедленный доступ к данным, например:
//get data
ArrrayList<Job> jobList = databaseCall.getList();
//use data
for(Job job : jobList)
Я пытался сделать это, используя 2 асинхронные задачи, одна из которых (задача B) возвращает результат. Поэтому я запускаю задачу A, которая затем вызывает задачу B с execute (). Get (), которая заставляет задачу A ждать результата, но метод doInBackground задачи B никогда не вызывается (я думаю, потому что задача A выполняется) может кто-нибудь указать мне на правильное направление, как я должен делать это, пожалуйста.
Вот код, просто потому что, кто знает ..
как мне создать список
List<JobList> jobListArrayList = jobListRepository.getAllWithLimit(Constants.JOB_LISTS_TO_RETURN);
метод jobListRepository
public List<JobList> getAllWithLimit(int i) {
Log.d(TAG,"getAllWithLimit");
try {
return new getJobListsWithLimit(jobDao, i).execute().get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
return null;
}
асинхронная задача (задача B для тех, кто поддерживает) вызов базы данных, как уже упоминалось, doInBackground никогда не вызывается
private static class getJobListsWithLimit extends AsyncTask<Void, Void,
List<JobList>> {
private JobDao mDao;
private int limit;
getJobListsWithLimit(JobDao dao, int limit) {
this.mDao = dao;
this.limit = limit;
Log.d(TAG,"async task");
}
@Override
protected List<JobList> doInBackground(Void... params) {
Log.d(TAG,"doInBackground");
return mDao.getAllJobListsWithLimit(limit);
}
}
и задача A не продолжается после вызова jobListRepository.getAllWithLimit, поэтому я думаю, что я знаю проблему, но мне не совсем понятно решение, спасибо за любую помощь
EDIT
Только что нашел работу менеджера
поцарапай что мне нужен пул потоков