EDIT : यह प्रश्न डुप्लिकेट नहीं है
- अभी कुछ दिन पहले ही एओएसपी की प्रतिनियुक्ति की गई थी।
- अन्य प्रश्न AsyncTaskLoader का उपयोग करने के बारे में AsyncTask पर है।
Google Android 11 में Android AsyncTask API को अपग्रेड कर रहा है और java.util.concurrentइसके बजाय उपयोग करने का सुझाव दे रहा है । आप यहां कमिट देख सकते हैं
*
* @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> {
यदि आप एंड्रॉइड में अतुल्यकालिक कार्यों के साथ एक पुराना कोडबेस बना रहे हैं, तो आपको भविष्य में इसे बदलने की संभावना है। मेरा प्रश्न यह है कि कोड स्निपेट का उचित प्रतिस्थापन क्या होना चाहिए जो नीचे दिखाया गया है java.util.concurrent। यह एक गतिविधि का एक स्थिर आंतरिक वर्ग है। मैं एक ऐसी चीज की तलाश में हूं, जिसके साथ काम करेंगेminSdkVersion 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) ;
}
}
AsyncTaskपीछे की संगतता को तोड़े बिना हटाया नहीं जा सकता।