В android я пытаюсь предотвратить утечку памяти. Я унаследовал некоторый код устаревшего кода, и в нем разработчик создает asyncTask как анонимный внутренний класс следующим образом:
void startAsyncTask() {
new AsyncTask<Void, Void, Void>() {
@Override protected Void doInBackground(Void... params) {
while(true);//loop to keep thread alive forever.
}
}.execute();
}
поэтому я использую цикл в этом примере, чтобы навсегда сохранить дочерний поток, чтобы я мог продемонстрировать свою точку зрения.
поэтому из активности, если я вызываю startAsyncTask()
, будет ли утечка памяти? класс не имеет ссылки на активность, но я понимаю, что анонимный класс действительно нестационарный внутренний класс и, следовательно, содержит ссылку на внешний класс. так ли это правда, что это само по себе является утечкой памяти?