
Roman
27.02.2017
15:41:15
В примере используется ConcurrentMap, так что думаю потоков несколько

Konstantin
27.02.2017
15:41:25
У вас видимо несколько потоков модифицируют данные одновременно.Сделайте синхронизатор.

Roman
27.02.2017
15:41:43
Привет!
Вопрос по поводу реакции на смену системного размера шрифта.
Есть у меня активити, в ней RootFragment, в нем в лэйаут добавляется еще один фрагмент ChildFragment в onViewCreated Rootfragment'а
В манифесте в активити рутфрагмента НЕ прописано android:configChanges=fontScale (типа обработать смену системного шрифта должна сама активити)
Меняю шрифт с Normal на Huge возвращаюсь в приложение, активити пересоздается, зовутся коллбэки лайфсайкла на RootFragment'е и на ChildFragment'у, ChildFragment невидим ( Становится видимым только после перезапуска приложения. Чот не пойму, эт как так?

Roman
27.02.2017
15:43:07
protected void onLooperPrepared() {
mRequestHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == MESSAGE_DOWNLOAD) {
T target = (T) msg.obj;
Log.i(TAG, "Got a request for URL: " + mRequestMap.get(target));
handleRequest(target);
}
}
};
}

Google

Quantum Harmonizer
27.02.2017
15:43:14

Roman
27.02.2017
15:43:41
Написал
handleRequest(target); это что то типа этого: https://forums.bignerdranch.com/t/challenge-using-lrucache/11009

Quantum Harmonizer
27.02.2017
15:44:38
А какую роль тогда выполняет лупер?

Gleb
27.02.2017
15:45:09
если то про это
то сделать битмап приватным полем - плохая идея

Roman
27.02.2017
15:46:06
Я его сделал приватным и получил удесный эффект

Quantum Harmonizer
27.02.2017
15:46:21

Roman
27.02.2017
15:47:03
Ну вот да. Как тогда обрабатывать эту поле ?

Gleb
27.02.2017
15:47:17

Quantum Harmonizer
27.02.2017
15:47:23

Roman
27.02.2017
15:47:55
Если я пишу final Bitmap bitmap = bla-bla то изменить уже его не могу

Google

Quantum Harmonizer
27.02.2017
15:48:21
Сформулируй задачу.

Roman
27.02.2017
15:49:04
Задача решена уже. Доставать битмап из кеша если он есть или закачивать

Aidar
27.02.2017
15:49:36

Roman
27.02.2017
15:50:17
Но я не понял какие варианты кроме Final bitmap. Если я делаю переменную - то она портится из-за конкуретных процессов

Quantum Harmonizer
27.02.2017
15:50:59

Aidar
27.02.2017
15:51:09
Передай куданибудь
В конструктор
Куда угодно
Ты анонимный класс написал же

Quantum Harmonizer
27.02.2017
15:52:12

Aidar
27.02.2017
15:52:33
По факту захват в джаве только на финальную фигню работает
Ну вообще то логично

Quantum Harmonizer
27.02.2017
15:53:27
Если бы она не была финальной, было бы много трудноуловимых багов.

Aidar
27.02.2017
15:53:50
Я предлагаю вынести этот обработчик явно в класс

Roman
27.02.2017
15:54:02

Aidar
27.02.2017
15:54:06
Это красивее будет
Вы просто захватили this а он тоже final
А баги у вас потому что из разных потоков меняете

Roman
27.02.2017
15:55:49
Смущает что оно компилировалось и работало. Вот почему я и заинтересовался

Google

Aidar
27.02.2017
15:56:16
Что не должно было скомпилится?
Тут статический анализатор бессилен

Roman
27.02.2017
15:57:42
Это стандартная особенность работы в нескольких потоках для джавы?

Aidar
27.02.2017
15:58:21
То что вы значения меняете из 2 потоков и не успеваете их обработать?

Quantum Harmonizer
27.02.2017
15:58:22
Какая особенность работы? Что прочитавая значение поля получаешь значение поля?

Aidar
27.02.2017
15:58:37
Это стандартная особенность потоков вообще

Roman
27.02.2017
15:59:04

Aidar
27.02.2017
15:59:19
Это было про runnable
Но тут несуть
Это никак не изменит ситуацию

Roman
27.02.2017
16:03:35

Anton
27.02.2017
16:04:10
прайват тут причем?

Anton
27.02.2017
16:04:32
это же модификатор доступа не?

Quantum Harmonizer
27.02.2017
16:05:08

Aidar
27.02.2017
16:05:44
Да вы сначала пишете
Потом делаете кучу штук
Потом читаете
Ясен пень значение могло поменятся
Ться*

Roman
27.02.2017
16:06:14

Google

Quantum Harmonizer
27.02.2017
16:06:34

Aidar
27.02.2017
16:06:36
Правильно как сейчас

Roman
27.02.2017
16:07:07
Есть какой то другой способ внутри функции использовать что то отличное от final ?

Aidar
27.02.2017
16:07:22
Что значит исполльзовать

Roman
27.02.2017
16:07:44
Присваивать или менять значение

Quantum Harmonizer
27.02.2017
16:07:56
Задача поставлена неверно. Примерно так же, как "есть ли способ сложить два числа, не используя + ?"

Aidar
27.02.2017
16:07:58
Bitmap что-то;
Делаем что-то со что-то;
final Bitmap buffer=что-то;
...
В этом чтоль проблема?

Roman
27.02.2017
16:10:09

Quantum Harmonizer
27.02.2017
16:10:39

Admin
ERROR: S client not available

Aidar
27.02.2017
16:11:05
Если внутри анонимного объекта надо менять то тоже просто создаете в нем
Bitmap AAA=buffer;

Quantum Harmonizer
27.02.2017
16:11:56
А вот если из анонимки нужно поменять значение локальной переменной... :)

Aidar
27.02.2017
16:12:12
Никак

Gleb
27.02.2017
16:12:18
У тебя шлепается по битмапу на картинку, эти битмапы иммутабельные, это правильно. Если ты хочешь изменямые битмапы с целью эфф исп-я памяти.. То см в сторону битмап пула. Есть примеры у гугла, реализация у глайда

Aidar
27.02.2017
16:12:35
В джаве нет передачи по ссылке

Quantum Harmonizer
27.02.2017
16:12:41
Никак
Ответ технически правильный, но решение всё же есть.

Aidar
27.02.2017
16:13:05
Я не знаю я плюсовик
Не джавист

Quantum Harmonizer
27.02.2017
16:13:29

Google

Aidar
27.02.2017
16:13:43
Это все равно передача по значению указателя
И это не локальный объект
Он в куче

Quantum Harmonizer
27.02.2017
16:14:05

Aidar
27.02.2017
16:14:24
int, float
Сам указатель

Quantum Harmonizer
27.02.2017
16:14:31

Aidar
27.02.2017
16:14:39
У меня все объекты

Quantum Harmonizer
27.02.2017
16:14:52

Aidar
27.02.2017
16:14:53
Просто не объекты класса
Короче сам указатель поменяй мне так
Тебе нужно будет обернуть его в еще один

Roman
27.02.2017
16:18:48
final Bitmap bitmap1 = AAA;
If (AAA == null) {
final Bitmap bitmap2 = BBB;
return bitmap2
} else {
return bitmap1;
}
Вот так сработает?

Aidar
27.02.2017
16:19:43
А почему не просто return?

Roman
27.02.2017
16:20:43

Gleb
27.02.2017
16:23:10

Aidar
27.02.2017
16:23:24
Не понимаю зачем там final и что значет сработает

Quantum Harmonizer
27.02.2017
16:23:34

Roman
27.02.2017
16:24:04
я с этого начал все :)

Aidar
27.02.2017
16:24:53
Просто Bitmap