【问题标题】:Android: Asynctaskloader is it necessary to override all onStartLoading, onReset etc function?Android:Asynctaskloader 是否需要覆盖所有的 onStartLoading、onReset 等函数?
【发布时间】:2015-08-29 14:17:47
【问题描述】:

我在理解 Asynctaskloader 时遇到问题...我看到的示例仅覆盖 loadInBackground 方法并返回结果。还看到了覆盖 onStartLoading、onReset 等的示例..

如果我只覆盖loadInBackground,会有什么问题吗,我的意思是如果Activity退出,loadInBackground还会继续执行吗,因为我可以看到AsyncTask会。

【问题讨论】:

    标签: android android-asynctask asynctaskloader


    【解决方案1】:

    对于基本功能,您只需要覆盖 loadInBackground。

    如果我只覆盖loadInBackground,会有什么问题吗,我的意思是 如果Activity退出,loadInBackground还会继续执行吗 因为我可以看到 AsyncTask 会。

    AsyncTaskLoader 将在 Activity 退出时继续在后台加载。

    AsyncTaskLoader 通过 AsyncTask 提供的唯一功能是,AsyncTaskLoader 会知道任务是否已运行/是否在重新创建 Activity 时正在运行,并附加到现有任务或恢复结果而不重新运行 AsyncTask,例如关于屏幕旋转。假设你正确使用LoaderManager.initLoader()LoaderManager.resetLoader()

    编辑: AsyncTaskLoader 需要一个完整的结构,即AsyncTaskLoaderLoaderManagerLoaderManager.LoaderCallbacks

    【讨论】:

    • 这是否意味着如果我需要处理任务是否需要重新运行,我必须做的不仅仅是覆盖 loadInBackground。
    • developer.android.com/reference/android/content/… 对于 AsyncTaskLoader,你只需要重写 loadInBackground,但你不应该像普通类一样直接创建和使用 AsyncTaskLoader。您必须点击上面的链接并使用LoaderManager,例如getLoaderManager().initLoader(0, null, this); 并实施 LoaderManager.LoaderCallbacks。简而言之,您需要整个结构。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-19
    • 2018-02-18
    • 2020-08-26
    • 2011-07-31
    • 2018-07-22
    相关资源
    最近更新 更多