
@IgnoreExtraPropertIEs@Entity(tablename = CarModel.table_name,indices = {@Index(value = "car_name",unique = true)})public class CarModel { public static final String table_name = "cars"; @PrimaryKey(autoGenerate = true) private int ID; @ColumnInfo(name = "car_name") private String name; @ColumnInfo(name = "car_price") private String price; private String type; private String position;} MainActivity.java
viewmodel.isCarsEmpty().observe(MainActivity.this,new Observer<Integer>() { @OverrIDe public voID onChanged(@Nullable Integer rowCount) { if (rowCount == 0) { viewmodel.insertItems(List); } else { viewmodel.updateItems(List); } } }); Carviewmodel.java
public liveData<Integer> isCarsEmpty() { return appDatabase.carDao().isDbEmpty();} public voID insertItems(List<CarModel> carModels) { new insertCarsAsyncTask(appDatabase).execute(carModels);}private class insertCarsAsyncTask extends AsyncTask<List<CarModel>,VoID,VoID> { private AppDatabase db; public insertCarsAsyncTask(AppDatabase appDatabase) { db = appDatabase; } @OverrIDe protected VoID doInBackground(List<CarModel>... params) { db.carDao().insertCars(params[0]); return null; }}public voID updateItems(List<CarModel> List) { new updateCarsTask(appDatabase).execute(List);}private class updateCarsTask extends AsyncTask<List<CarModel>,VoID> { private AppDatabase db; public updateCarsTask(AppDatabase appDatabase) { db = appDatabase; } @OverrIDe protected VoID doInBackground(List<CarModel>... params) { db.carDao().updateCars(params[0]); return null; }} CarDao.java
@Insert(onConflict = REPLACE)voID insertCars(List<CarModel> cars);@UpdatevoID updateCars(List<CarModel> param);@query("SELECT count(*) FROM " + CarModel.table_name)liveData<Integer> isDbEmpty(); 我做了调试,新数据来了,并调用viewmodel.updateItems(List)方法.提前谢谢!
解决方法 我很抱歉发布这个作为答案,但我不允许添加一个简单的评论,所以这是我的想法:您是否尝试过仅使用insertCars()而不是updateCars()?无论如何,看起来你的isCarsEmpty()liveData回调一直被触发,因为当调用观察者时,数据库再次被改变.我不太确定你想要实现什么.
总结以上是内存溢出为你收集整理的Android Room持久性库@Update无效全部内容,希望文章能够帮你解决Android Room持久性库@Update无效所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)