java 示例AsyncTaskLoader实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 示例AsyncTaskLoader实现相关的知识,希望对你有一定的参考价值。

public class MyAsyncTaskLoader extends AsyncTaskLoader<ResponseObject> {
    private String mId;
    private ResponseObject mResponse;

    /**
     * Creates a new {@link MyAsyncTaskLoader}.
     *
     * @param context The context to use.
     * @param id      The ID of the item to load.
     */
    public MyAsyncTaskLoader(@NonNull Context context, @NonNull String id) {
        super(context);
        mId = id;
    }

    @Override
    protected void onStartLoading() {
        if (mResponse != null) {
            deliverResult(mResponse);
        }

        if (mResponse == null || takeContentChanged()) {
            forceLoad();
        }
    }

    @Override
    public ResponseObject loadInBackground() {
        return new ResponseObject(mId); // load then return data
    }

    @Override
    public void deliverResult(ResponseObject response) {
        if (isReset()) {
            return;
        }
        mResponse = response;

        if (isStarted()) {
            super.deliverResult(mResponse);
        }
    }

    @Override
    protected void onReset() {
        onStopLoading();

        if (mResponse != null) {
            mResponse = null;
        }
    }
}

以上是关于java 示例AsyncTaskLoader实现的主要内容,如果未能解决你的问题,请参考以下文章

AsyncTask Loader Http POST / GET

在片段分离时中止加载 AsyncTaskLoader

如何中断 AsyncTaskLoader 后台线程?

如何中断AsyncTaskLoader后台线程?

在常规(支持)片段中使用 AsyncTaskLoader 更新适配器不更新 ListView

Android ListView 由 AsyncTaskLoader 更新