Контекст активности против активности против инъекции с ограниченной областью действия в HiltAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Контекст активности против активности против инъекции с ограниченной областью действия в Hilt

Сообщение Anonymous »

У меня есть несколько вопросов относительно библиотеки Hilt на основе прочитанной мной статьи:
Когда (и когда нет) передавать контекст активности в Android
  • Почему в хорошем дизайне шаблонов следует вставлять Контекст вместо объекта активность?
  • Так ли это? достаточное количество аннотаций @ActivityContext, или нам следует также указать аннотацию @ActivityScoped?
  • Если мы просто добавим @ActivityScoped, как помощник по разрешению ниже, и мы забыли добавить @ActivityContext, будет ли Hilt или Dagger ограничивать их зависимости автоматически, или я должен гарантировать Hilt, что этот контекст является контекстом активности и привязан к действию, внедренному в этот объект ?
  • Позволит ли Dagger смешивать области видимости, например класс меню? GPT в чате отвечает, что позволяет смешивать области, но я в этом сомневаюсь. Как я узнал из курса Василия Зуканова, объекты ограничивают свои зависимости.
https://www.udemy.com/course/dependent-injection-in -android-with-dagger/?couponCode=LETSLEARNNOWPP
Это некоторые объекты, связанные с пользовательским интерфейсом, которые были внедрены в hilt, дизайн которых является хорошей практикой и которого следует избегать в Hilt
///нет области действия
//это может быть ограничено действием, внедренным в этот объект
//это означает, что при воссоздании этого действия будет использоваться новый экземпляр //но мы предоставить контекст активности
///это будет связано с жизненным циклом активности
public class PermissionHelper {

private final Context mActivity;

@Inject
public PermissionHelper(@ActivityContext Context activity) {
this.mActivity = activity;
}
}

///@ActivityScoped //это может быть ограничено активностью, внедренной в этот объект, что означает, что при воссоздании этой активности будет использоваться тот же экземпляр ///но мы забываем добавить @ActivityContext сам поймет это
@ActivityScoped
public class PermissionHelper {

private final Context mActivity;

@Inject
public PermissionHelper(Context activity) {
this.mActivity = activity;
}

}
//Меню — @ActivityScoped, а общие ссылки — @Singleton // кинжал позволит смешивать области действия
@ActivityScoped
public class Menuu extends BaseObservablee {

@Inject
public Menuu(Context context, SharedPref sharedPreferences) {
applicationcontext = context;
this.sharedPref = sharedPreferences;
}}


Подробнее здесь: https://stackoverflow.com/questions/786 ... on-in-hilt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»