Я новичок в обсуждениях. Я пытаюсь загрузить небольшой массив фотографий. Прямо сейчас я использую задачи/темы Async, но как сделать результат последовательным? Ниже приведен пример:Как синхронизировать потоки в инструкции цикла?
Что я хочу:
a[0] = photo1;
a[1] = photo2;
a[2] = photo3;
a[3] = photo4
Что моя программа дает мне вместо этого. Обратите внимание, что изменения порядка и является случайным:
a[0] = photo[2];
a[1] = photo[1];
a[2] = etc
Вот отрывок из моего кода:
...
for (int i = 0; i < mNoOfContacts; i++) {
String stringContactUri = storeSettings.getString("contactUri"+i, "");
if (stringContactUri != ""){
Uri contactUri = Uri.parse(stringContactUri);
loadContactInfo(contactUri);
}
...
private void loadContactInfo(Uri contactUri) {
AsyncTask<Uri, Void, ContactInfo> task = new AsyncTask<Uri, Void, ContactInfo>() {
@Override
protected ContactInfo doInBackground(Uri... uris) {
return mContactAccessor.loadContact(getContentResolver(), uris[0]);
}
@Override
protected void onPostExecute(ContactInfo result) {
Contacts[mNoOfContacts] = result;
Toast.makeText(getApplicationContext(), mNoOfContacts+"Picked Contact"+Contacts[mNoOfContacts].getDisplayName(), Toast.LENGTH_SHORT).show();
mNoOfContacts++;
}
};
task.execute(contactUri);
}
...
Мой код является модификацией демо-приложения Google Android - визитные карточки. Пожалуйста, помогите! Благодаря!