EDIT : Pertanyaan ini bukan duplikat sebagai
- Hanya beberapa hari yang lalu AOSP berkomitmen pada penghentian telah dilakukan.
- Pertanyaan lain adalah tentang menggunakan AsyncTaskLoader di atas AsyncTask.
Google mencela Android AsyncTask API di Android 11 dan menyarankan untuk menggunakannya java.util.concurrentsebagai gantinya. Anda dapat melihat komit di sini
*
* @deprecated Use the standard <code>java.util.concurrent</code> or
* <a href="https://developer.android.com/topic/libraries/architecture/coroutines">
* Kotlin concurrency utilities</a> instead.
*/
@Deprecated
public abstract class AsyncTask<Params, Progress, Result> {
Jika Anda mempertahankan basis kode yang lebih lama dengan tugas-tugas tidak sinkron di Android, Anda mungkin harus mengubahnya di masa mendatang. Pertanyaan saya adalah apa yang seharusnya menjadi pengganti yang tepat dari cuplikan kode yang ditunjukkan di bawah ini java.util.concurrent. Ini adalah kelas dalam statis dari suatu Kegiatan. Saya mencari sesuatu yang akan berhasilminSdkVersion 16
private static class LongRunningTask extends AsyncTask<String, Void, MyPojo> {
private static final String TAG = MyActivity.LongRunningTask.class.getSimpleName();
private WeakReference<MyActivity> activityReference;
LongRunningTask(MyActivity context) {
activityReference = new WeakReference<>(context);
}
@Override
protected MyPojo doInBackground(String... params) {
// Some long running task
}
@Override
protected void onPostExecute(MyPojo data) {
MyActivity activity = activityReference.get();
activity.progressBar.setVisibility(View.GONE);
populateData(activity, data) ;
}
}
AsyncTasktidak dapat dihapus tanpa merusak kompatibilitas.