У меня есть переменная, созданная в onCreate()
, например:
DataClient dataClient = Wearable.getDataClient(this)
Затем я передаю эту переменную моему статическому AsyncTask в конструкторе. Я использую это в doInBackground()
. Как я понимаю - это утечка (использование контекстно-зависимой переменной в асинхронных задачах блокирует GC от операции очистки до завершения задачи).
Возможное решение - использовать слабую ссылку на dataClient
.
Проблема со слабой ссылкой заключается в том, что я слышал, что вы не должны разыменовывать его в doInBackground()
, только в onPostExecute()
, но мне нужно в doInBackground()
.
Что я могу сделать?