Простейший код для Андроид 4+:
public class MyAsyncTask extends AsyncTask<String, Void, String> { @Override protected void onPreExecute() { super.onPreExecute(); } @Override protected String doInBackground(String... params) { ... return result; } @Override protected void onPostExecute(String result) { ... } }
This AsyncTask class should be static or leaks might occur (...MainActivity.MyAsyncTask) less... (⌘F1) A static field will leak contexts. Non-static inner classes have an implicit reference to their outer class. If that outer class is for example a Fragment or Activity, then this reference means that the long-running handler/loader/task will hold a reference to the activity which prevents it from getting garbage collected. Similarly, direct field references to activities and fragments from these longer running instances can cause leaks. ViewModel classes should never point to Views or non-application Contexts.
В Java я новичок.
Я правильно понимаю, что проблема - в возможности «подвисания» background-процесса, который не освободит память при закрытии MainActivity?
В случае Андроида - это какие практические ситуации? Сворачивание приложения при активном background-процессе? Или останов приложения?