我正在使用Retrofit2和DBFlow。将数据保存到数据库时出现问题。当我同时调用两次线程时,某些数据是重复的。问题是我的列表,因为此变量是最终变量。我必须设置final,因为我需要在线程中使用此List。
然后,有一种方法可以将最终版本删除到我的列表中并替换为某些内容?
改造onResponse()
public void onResponse(Call<AdminPictures> call, Response<AdminPictures> response) {
AdminPictures apResponse = response.body();
// Here is my list
final List<PictureInfos> pictureInfos = apResponse.getPicturesList();
new Thread(new Runnable() {
@Override
public void run() {
try {
// The List is used here
for (PictureInfos infos : pictureInfos) {
if(!infos.exists()){
infos.save();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
最佳答案
将列表的声明移到类的顶部,并创建一个类变量...
List<PictureInfos> pictureInfos....