Безопасно ли передавать переменную, которая зависит от контекста, AsyncTask - PullRequest
1 голос
/ 04 апреля 2019

У меня есть переменная, созданная в onCreate(), например:
DataClient dataClient = Wearable.getDataClient(this)

Затем я передаю эту переменную моему статическому AsyncTask в конструкторе. Я использую это в doInBackground(). Как я понимаю - это утечка (использование контекстно-зависимой переменной в асинхронных задачах блокирует GC от операции очистки до завершения задачи).

Возможное решение - использовать слабую ссылку на dataClient.
Проблема со слабой ссылкой заключается в том, что я слышал, что вы не должны разыменовывать его в doInBackground(), только в onPostExecute(), но мне нужно в doInBackground().

Что я могу сделать?

...