Skip to content

Conversation

@kostya93
Copy link

@kostya93 kostya93 commented Jul 25, 2016

add task 2 (handler).

upd:
добавил задание с loader-ом, коллажи делает, но периодически картинки сетятся не в те вьюхи, почему - не знаю😕.

upd:
Добавил отмену старого таска, если на туже вьюху приходит новый.

upd:
добавил ExecutorService для ограничения кол-ва потоков, убрал создание потоков в реализацию CollageLoader

ezgif-2619705249

@kotiknorm
Copy link
Collaborator

Держи
java.lang.OutOfMemoryError: Failed to allocate a 1440012 byte allocation with 163990 free bytes and 160KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
at android.graphics.Bitmap.createBitmap(Bitmap.java:756)
at ru.yandex.yamblz.loader.CollageStrategyImpl.create(CollageStrategyImpl.java:31)
at ru.yandex.yamblz.loader.StubCollageLoader.loadCollage(StubCollageLoader.java:39)
at ru.yandex.yamblz.ui.fragments.Genre.GenreAdapter.lambda$onBindViewHolder$0(GenreAdapter.java:48)

return genres;
}

public Artist(JSONObject jsonObject) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вообще очень плохая практика парсить джейсон внутри конструктора
Ты ведь даже не сможешь понять нормально обьект создался или с ошибкой, придется создать обьект в любом случае, плюс это еще возможно тяжелая операция, конструктор должен быть легким

Log.d("onBindViewHolder,pos = ", Integer.toString(position));
Genre genre = genres.get(position);
holder.textInList.setText(genre.getDescription());
new Thread(() -> {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

На каждый onBindViewHolder новый поток? не надо так
Хочется чтобы было также легко использовать как пикассо или подобное. А тут ты все делаешь на потоке из которого запустили функцию loadCollage, да и еще количество этих потоков никак не контролируешь. Операции не отменяешь (Как минимум не вижу этого) на новый onBindViewHolder

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants