Люди, у меня есть задача async, которая загружает некоторые новости с помощью webservice. Вот psuedo для этого.Оптимизация AsyncTask относительно внутреннего списка
У меня есть операция, которую я выполняю в asynctask. Он загружает некоторые новости из веб-службы.
AsyncTask
{
AsyncTask(Context context){}
doInBackground()
{
// download some news
..
..
return List<News>
}
onpostExecute(List <News>)
{
is the activity around ? if yes then
//find the list using context ,and populate it with news
}
}
Вопрос в том, что в середине операции, если устройство ориентировано, у нас будет новая AsyncTask. Теперь у старого уже есть внутренний список.
Будет ли сбор мусора? , Я думаю, что это не так. Я чувствую запах концепции слабых ссылок, применяемых в этой ситуации, но я не могу доверять своему носу здесь.
Кроме того, в слабых ссылках я могу знать внутри onPostExecute, что активность, которая породила эту Async, уже не вокруг. Но . Я все еще верю, что упускаю много.
Или это ничего, о чем я должен беспокоиться, и Список автоматически будет собираться мусором после завершения асинхронизации?
спасибо за ответ. Однако, как вы видите, мой вопрос больше связан с поведением сборщика мусора.Я имею в виду, что у меня нет какой-либо проблемы в настоящее время, однако я СИЛЬНО вижу, что у меня может быть один в будущем, как я подразумеваю в своем вопросе. –
Я думаю, что более дорогим объектом в плане памяти является контекст активности. Список, вы бы объявили его в классе asynctask, поэтому он будет собран также, если задача будет собрана. –