AsyncTask.execute () Безопасность - PullRequest
0 голосов
/ 08 июня 2018

Я использую AsyncTask.execute(Runnable run) для коротких операторов, которые требуют выполнения потоков не в пользовательском интерфейсе в устаревшем проекте.Но хорошо известно, что AsyncTasks не следует хранить как объявления анонимных, локальных и внутренних классов во избежание утечек памяти.

Насколько безопасно доверять этому подходу?Я предпочитаю использовать это для коротких заявлений, но когда я понимаю, что я называю это анонимным, меня беспокоит вероятность утечки.Lint ничего не предупреждает об этом, как это было бы, когда имеешь дело с построением классов AsyncTasks.

1 Ответ

0 голосов
/ 08 июня 2018

AsyncTasks хороши, если они заканчиваются в относительно короткие сроки.Причина, по которой люди говорят избегать их, заключается в том, что ЛЮБОЙ поток, AsyncTask или нет, будет хранить ссылку на своего родителя и любые переменные, которые он содержит в качестве переменных класса.Эта ссылка исчезает, когда поток завершает выполнение.Поэтому, если задача или поток выполняются за разумное время, это не беспокоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...