DÜZENLEME : Bu soru aşağıdaki gibi bir kopya değil
- Sadece birkaç gün önce AOSP'nin kullanımdan kaldırılması taahhüdü yapıldı.
- Diğer soru, AsyncTask üzerinden AsyncTaskLoader'ı kullanmakla ilgilidir.
Google, Android 11'de Android AsyncTask API'sını kullanımdan kaldırıyor ve java.util.concurrentbunun yerine kullanılmasını öneriyor . taahhüdü buradan kontrol edebilirsiniz
*
* @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> {
Android'de eşzamansız görevlere sahip daha eski bir kod tabanını koruyorsanız, gelecekte bunu değiştirmeniz gerekecektir. Benim sorum, aşağıda gösterilen kod snippet'inin uygun şekilde değiştirilmesi gerektiğidir java.util.concurrent. Bir Faaliyetin statik bir iç sınıfıdır. Birlikte çalışacak bir şey arıyorumminSdkVersion 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) ;
}
}
AsyncTaskgeriye dönük uyumluluk bozulmadan çıkarılamaz.