169 похожих чатов

Как вы решаете передачу context'a во ViewModel? потому как подсвечивает This field

leaks a context object

14 ответов

20 просмотров

Из синглтона aplication?

Vadim-Morozov Автор вопроса

то есть каждый раз вызываете его из синглтона в Application'e? и не передаете получается через фабрику и всё такое?

Как правило либо через di передавая context приложения, или попробовать через AndroidViewModel

Vadim-Morozov Автор вопроса

ну так через di я и передаю щас ну то есть есть фабрика и через неё в целом фабрика общая для всех моделей а вот второй кейс хз

В aplication передается viewmodel, а в активити/фрагменте получается через newinstance, которая возвращает viewmodel, если я ничего не путаю.

Vadim-Morozov Автор вопроса

кажется путаете или я не смекну как у вас) viewModel вызывается из фрагмента/активити как минимум а там уже всё пальто не?

Я так понимаю тут больше вопрос почему именно линтер подсвечивает,думаю тут стандартное правило что контекст передавать дальше активити не стоит и он за это бьёт, если передаешь контекст приложения то беспокоиться не стоит, если активити, то лучше сделать через приложение чтобы контекст не утекал. Относительно того как его передавать то в любом случае в вьюмодель это фабрика, а как уже в фабрику передавать вопрос реализации относительно di и прочего, как вариант можешь ещё наследовать не ViewModel, а AndroidViewModel и из конструктора получить app.

Vadim-Morozov Автор вопроса

ну пожалуй да единственное что не помню почему исторически ушли от AndroidVIewModel и перешли к ViewModel помню какие то причины точно были

Сейчас посмотрю пример по которому делал, отпишусь.

Это пример из книги андроид, программирование для профессионалов

Хреновый пример, не для профессионалов)

Есть другие примеры?😊

Ну можно App.getContext() Получится типа ServiceLocator

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Карта сайта