Size: a a a

Android Architecture

2020 October 10

GR

Gor Rushanyan in Android Architecture
Буквально, пьюрпарселфанкшн принимает функцию онкенсел к примеру. Которая в себе вообще ссылается на текствью.
Каким образом при пересозданим, к примеру базового фрагмента, фрагмент диалог вытащит данные из бандла и тригернит то что нам нужно?
источник

QH

Quantum Harmonizer in Android Architecture
Gor Rushanyan
Буквально, пьюрпарселфанкшн принимает функцию онкенсел к примеру. Которая в себе вообще ссылается на текствью.
Каким образом при пересозданим, к примеру базового фрагмента, фрагмент диалог вытащит данные из бандла и тригернит то что нам нужно?
если она захватит текствью (или вообще что угодно), конструктор pureParcelFunction сразу свалится
источник

GR

Gor Rushanyan in Android Architecture
Так у тебя в примере разве не так?
источник

GR

Gor Rushanyan in Android Architecture
Т.е. в результате сериализируется дямбда что понятно
источник

QH

Quantum Harmonizer in Android Architecture
Gor Rushanyan
Так у тебя в примере разве не так?
Я там передаю функцию, не забайнденную даже к this. Библиотека потом первым параметром передаст туда текущий Screen — тот же или пересозданный
источник

GR

Gor Rushanyan in Android Architecture
Quantum Harmonizer
Я там передаю функцию, не забайнденную даже к this. Библиотека потом первым параметром передаст туда текущий Screen — тот же или пересозданный
А не будет проблемы гонки и тд?
источник

GR

Gor Rushanyan in Android Architecture
В зависимости что первое создалось?
источник

QH

Quantum Harmonizer in Android Architecture
Gor Rushanyan
А не будет проблемы гонки и тд?
а что там за гонка может быть? У тебя же нет гонки, если кладёшь в бандл строку, например)
источник

GR

Gor Rushanyan in Android Architecture
Потому что строка не будет пересоздаваться в отличии от скрина
источник

QH

Quantum Harmonizer in Android Architecture
Gor Rushanyan
Потому что строка не будет пересоздаваться в отличии от скрина
ну тип мы можем вызвать str.charAt(x), а можем someFunc.invoke(thisScreen), не вижу принципиальной разницы
источник

GR

Gor Rushanyan in Android Architecture
Quantum Harmonizer
ну тип мы можем вызвать str.charAt(x), а можем someFunc.invoke(thisScreen), не вижу принципиальной разницы
Все, дошло
источник

GR

Gor Rushanyan in Android Architecture
Сорри, был слишком самоуверен и попытался читать с телефона код в гитхабе
источник

GR

Gor Rushanyan in Android Architecture
но честно, екстеншн сделанный под конструктор для диалогфрагмента выглядит довольно странно, но мне он чуть мозг не сломал пока в студии не посмотрел
источник

GR

Gor Rushanyan in Android Architecture
Но прикольно в целом, с функциями в бандле
источник

GR

Gor Rushanyan in Android Architecture
По сути сериализация лямбды типа (Screen) -> R (для безаргументного метода onCancel). С последующим вызовом. Я провтыкал что действительно в метод референсе нет завязки на this. В результате this в нашем примере как раз аргумент - Screen. Что уже дальше похендлится фреймворком.
источник

AB

Alex Bieliaiev in Android Architecture
Мне кажется, рассказать о функциях в бандле следует с оговорками
источник

AB

Alex Bieliaiev in Android Architecture
Потому как на уровне jvm нет никаких функций в бандлах
источник

QH

Quantum Harmonizer in Android Architecture
Alex Bieliaiev
Потому как на уровне jvm нет никаких функций в бандлах
чееегоо?
источник

AB

Alex Bieliaiev in Android Architecture
Ну а вы понимаете, как это реализовано на уровне jvm?
источник

A

ABI in Android Architecture
Alex Bieliaiev
Потому как на уровне jvm нет никаких функций в бандлах
ты про сериализацию функций, что бы запихнуть их в бандл - в этом ключе? или не?
источник