EDITAR : Esta pregunta no es un duplicado como
- Hace solo un par de días se realizó el compromiso de AOSP con respecto a la degradación.
- La otra pregunta es sobre el uso de AsyncTaskLoader sobre AsyncTask.
Google está desaprobando la API de Android AsyncTask en Android 11 y sugiere usar java.util.concurrenten su lugar. puedes ver el commit aquí
*
* @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> {
Si mantiene una base de código más antigua con tareas asincrónicas en Android, es probable que tenga que cambiarla en el futuro. Mi pregunta es cuál debería ser el reemplazo adecuado del fragmento de código que se muestra a continuación utilizando java.util.concurrent. Es una clase interna estática de una Actividad. Estoy buscando algo que funcioneminSdkVersion 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) ;
}
}
AsyncTaskno se puede eliminar sin romper la compatibilidad con versiones anteriores.