据我所知,在“普通的旧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;
        }
    }