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

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

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

15 ответов

16 просмотров

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

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

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

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

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

Google: how to provide context dagger2 android

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

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

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

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

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

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

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта