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

Привет. Разбираюсь с даггером, появилась пара вопросов. Правильно ли я

понял что для того что бы иметь доступ к компоненту отовсюду его нужно инициализировать в onCreate в Application? В случае же если мне нужен какой то компонент исключительно в рамках активити/фрагмента я могу делать это в нём? Не совсем понял как мне передавать внешние данные в модуль, допустим я хочу создать экземпляр Room один на всё приложение, для этого мне нужно создать его как синглтон с контекстом приложения. И вопрос, собственно откуда получить контекст приложения? Если всё что передаётся в провайд функцию должно быть так же возможно получить из провайд функции.

15 ответов

2 просмотра

Даггер я вобще не понял нах оно мне (ну разве что начальство скажет) но таки да - если нечто инициализировать в onCreate в Application и в нем же хранить ссылку на него (репозиторий? Копия Application context?) то к нему будет доступ откуда угодно. И даггер тогда зачем вообще?

Модуль создай, который провайдит контекст. А контекст получай из Application класса через application.applicationContext

Вот из аппликейшн класса и запросить. Вернуть его this. Он (его экземпляр) всегда по определению существует и единственен. Пишешь метод типа App.getContextAnywhere() и будет тебе контекст где угодно без даггеров

Dzmitry- Автор вопроса

Не совсем понимаю откуда его здесь взять?

Google: how to provide context dagger2 android

Dzmitry- Автор вопроса

Ещё вот вопрос, в одном уроке в компоненте реализуются методы inject которые принимают разные фрагменты/активити, а в примере на сайте даггера в компоненте реализуются методы от которых можно получить инстансы классов. Это зависит от того инжектим мы конструктор или поле класса?

Не совсем понял "методы от которых можно получить инстансы классов". Можно пример?

фабричные методы, видимо

Билд инстанс анотации над билдером в компоненте?

а вот тут уже ЯННП :)

Dzmitry- Автор вопроса
Dzmitry- Автор вопроса

Первый скрин с сайта, там метод возвращает класс, второй из видео, там инжекты без ретурна

Ну так первое то вообще отдельный компонент. Разные компоненты нужны как правило для разных скоупов.

Dzmitry- Автор вопроса

А в чём их разница? Из первого просто можно получить инстансы классов, а второй сам заинжектит их в поля классов которые в него передам?

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
96
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
6
Карта сайта