房间内嵌套AsyncTask?

时间:2018-09-21 14:58:42

标签: android sql android-asynctask android-room

因此,我一直在为Android应用程序使用Room Persistence机制,这是我的代码,用于从用户输入中收集一些数据后更新数据库:

V100

由于我已经读过某个地方,new AsyncTask<Product,Void,Void>() { @Override protected Void doInBackground( Product ... newProducts ) { Producer q= new Producer(); q.setName(nm); MyDatabase.getDatabase(getActivity()).myDao().insertProducers(q); int id= MyDatabase.getDatabase(getActivity()).myDao().getProducerByName(nm).getId(); Product p= newProducts[0]; p.setProducerId(id); MyDatabase.getDatabase(getActivity()).myDao().insertProducts(p); id= MyDatabase.getDatabase(getActivity()).myDao().getProductByUpc(p.getUpcCode())[0].getId(); for ( Packaging x: packagings ) x.setProductId(id); Packaging[] array= new Packaging[packagings.size()]; for ( int i= 0; i < packagings.size(); ++i ) array[i]= packagings.get(i); MyDatabase.getDatabase(getActivity()).myDao().insertPackagings(array); return null; } }.execute(p); 默认情况下会在其他线程中执行某些查询,所以现在我可以看到上面的代码不能被信任依次执行。我选择不执行@DaoonPreExecute()中的操作,因为通过文档可以在UI线程中执行它们。 那么,这是我的问题的答案吗?使用嵌套的onPostExecute()吗?这是一个好的做法,还是适合我在上面的代码中试图实现的目标?

0 个答案:

没有答案