据我所知,在“普通的旧java类”中,非静态的AsyncTasks可能会泄漏 . 我的问题是,考虑到androidViewModel的生命周期明显长于活动,Lint的这个警告是否准确 - 我应该重新设计我的模式吗?
如果有,怎么样?
我目前的AsyncTask看起来像这样:
protected class ApplicationListQueryTask extends AsyncTask<Void, Void, List<pkg> > {
@Override
protected void onPostExecute(List<pkg> packageSummaries) {
super.onPostExecute(packageSummaries);
// update mutable LiveData member object etc.
}
@Override
protected List<pkg> doInBackground(Void... voids) {
List<pkg> installedPackagesList = new ArrayList<>();
for (ApplicationInfo appInfo : mPackageManager.getInstalledApplications(0)) {
installedPackagesList.add(new pkg(mPackageManager, appInfo));
}
return installedPackagesList;
}
}