Какой Context будешь использовать при создании библиотеки

«Какой Context будешь использовать при создании библиотеки» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для создания библиотеки лучше использовать Application Context, чтобы избежать утечек памяти. Context из Activity может привести к проблемам, если Activity уничтожится, а ссылка на её Context останется.

Пример:

class MyLibrary(private val appContext: Context) {
    init {
        require(appContext.applicationContext != null) { "Use Application Context!" }
    }
}

Если библиотека требует Context для ресурсов/сервисов, принимай его в конструкторе, но всегда проверяй, что это Application Context. Для удобства можно добавить аннотацию @RequiresApi или документацию.