Bir klasörde belirli dosyaları arayan ve paylaşılan tercihleri için adreslerini (artı diğer 3 özniteliği) kaydeden bir sınıf yazdım, ardından özel bağdaştırıcımda bir yöntem çağrısı yapıyorum (yöntemi (getAllItems olarak adlandırılır) verileri paylaşılan tercihlerden okur, yeni özel nesneleri başlatır ve bunları bir listeye ekler ve listeyi döndürür. Bu, en büyük yüklemenin gerçekleştiği kısımdır) ve ardından bağdaştırıcı bu öğeler listesini kullanır.Geridönüştürme seti Bağdaştırıcıyı senkronize olarak ayarlama
E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
Process: com.amir.example, PID: 4968
java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:787)
at java.util.HashMap$KeyIterator.next(HashMap.java:814)
at com.android.internal.util.XmlUtils.writeSetXml(XmlUtils.java:355)
at com.android.internal.util.XmlUtils.writeValueXml(XmlUtils.java:693)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:300)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:269)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:235)
at com.android.internal.util.XmlUtils.writeMapXml(XmlUtils.java:192)
at android.app.SharedPreferencesImpl.writeToFile(SharedPreferencesImpl.java:600)
at android.app.SharedPreferencesImpl.-wrap2(SharedPreferencesImpl.java)
at android.app.SharedPreferencesImpl$2.run(SharedPreferencesImpl.java:515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
: her öğeden adresini almak bir Bitmap oluşturmak ve recyclerView bu onları göstermek i alıyorum hatadır 210 dosya sayısı az olduğunda (100 dosyadan 20 eşleşme gibi) uygulama iyi çalışıyor ancak çok fazla olduğunda (8000 dosyadan 200 öğe gibi) uygulama çöküyor
Yüklemeye çalıştım uyumsuz adaptörün içine öğeleri: Bu yılında MainActivity.java
public class AsyncAdapter extends AsyncTask<Void, Void, Void> {
@Override
protected Void doInBackground(Void... params) {
//This line will load the files into shared preferences (DataSource is my sharedPreferences)
Loader.loadPhoneStickers(adapter.getDataSource());
//this will cause the list that the adapter is attached to, to get updated and load all the items that were added to shared preferences
//this method will make a call to getAllItems and notifyItemRangeChanged
adapter.refresh();
return null;
}
}
ama hata i (adaptör ayarı gerçekleşecek tüm yükleme neden olur) ya da uyumsuz adaptörü kurarım olsun aynı kalır eşzamanlı olarak
Yüklemeyi nereye yapmalıyım? otto'un herhangi bir yardımı olacak mı?
şimdiki çalışma sayesinde ... bu konuda yarım gün geçirdiğine inanamıyorum. anlamadığım şey, neden küçük dosya kümeleri üzerinde çalışıyordu .. –