Передача активити в статический метод

Я хочу создать синглтон в котором будут методы для оценки приложения в google play. Для таких метод мне нужен контекст, а для их новой библиотеки для отзывов и вовсе активити. Подскажите плиз, если я передам в свой синглтон activity для контекста, через параметр метода, и использовать его буду только там. Это будет вызывать утечку памяти или ещё что-то плохое?

object RateAppManager{

    fun googlePlayInAppReview(activity: Activity?, reviewManager: ReviewManager) {
        val requestFlow = reviewManager.requestReviewFlow()
        requestFlow.addOnCompleteListener { request ->
            if (request.isSuccessful) {
                val reviewInfo = request.result
                val flow = activity?.let { reviewManager.launchReviewFlow(it, reviewInfo) }
                flow?.addOnCompleteListener { _ ->
                }
            } else {
                activity?.let { showRateAppDialog(it) }
            }
        }
    }
}

Ответы (1 шт):

Автор решения: woesss

Сама по-себе передача контекста в метод для использования его там же - нормальная практика.
Так как параметр метода это локальная переменная и она уничтожается по выходу из него, то ничего страшного в этом нет, но только в том случае, когда эта переменная не копируется (передаётся) за пределы метода.
В данном случае это не так: ссылка передаётся в анонимную реализацию слушателя и время её жизни теперь зависит от времени жизни этого объекта.
Я не знаю ни эту библиотеку, ни как вы её используете - поэтому не могу сказать будет у вас утечка или нет.
Утечка гарантирована если слушатель продолжит работать после выхода из активности, ссылку на которую он хранит.

→ Ссылка