编辑:这个问题不是重复的
- 仅仅几天后,AOSP就完成了弃用承诺。
- 另一个问题是关于在AsyncTask上使用AsyncTaskLoader的问题。
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> {
如果您要使用Android中的异步任务维护较旧的代码库,则将来可能需要更改它。我的问题是,应该正确替换下面显示的代码片段java.util.concurrent。它是Activity的静态内部类。我正在寻找可以使用的东西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) ;
}
}
@ Style-7不是。
—
EpicPandaForce
没有所谓的“静态内部类”。您的意思是静态嵌套类。
—
白俄罗斯
AsyncTask不能在不破坏向后兼容性的情况下将其删除。