【问题标题】:AsyncTaskLoader with Dialogs, Is it feasible?AsyncTaskLoader with Dialogs,可行吗?
【发布时间】:2012-07-15 06:39:37
【问题描述】:

我启动了一个新应用程序,我想使用最新的 android 模式和指南,其中之一是使用 Loaders (AsyncTaskLoader) 而不是 AsyncTasks,我正在尝试看看 Loaders 是否真的应该取代你所有的AsyncTasks“任务”即

假设您要基于 REST 调用构建应用程序,其中一个调用负责登录用户。因此,当您单击提交(在片段按钮上)时,会出现一个对话框,直到响应返回,如果我是正确的,除非您使用处理程序,否则 AsyncTaskLoader onLoadFinished 不会让您关闭对话框,并且很好地使用它,使解决方案看起来有点老套,因为你需要显示错误对话框,比如用户名或密码错误时,你可能会收到一堆对处理程序的调用。

我使用 AsyncTask 快速完成了这项工作,一切正常,现在我将所有代码移至 AsyncTaskLoader耐心等待您的回答。

感谢您抽出宝贵的时间。

【问题讨论】:

    标签: android android-asynctask android-loadermanager asynctaskloader android-loader


    【解决方案1】:

    我正在尝试查看 Loaders 是否应该真正替换您所有的 AsyncTasks“任务”。

    Loader 执行数据的异步加载,监控其数据源并在其数据内容发生变化时提供新结果。 AsyncTaskLoaderLoader,它使用 AsyncTaskLoader 的操作卸载到单独的线程。 AsyncTask 基本上是Android 版本的Thread;它抽象出繁琐的多线程细节,并提供了一些方便的回调方法。

    在您的情况下,登录用户是一次性的,可能很昂贵的REST 请求......它与加载/监控数据源无关。您应该改用AsyncTask

    【讨论】:

    • 另外,您应该尽量避免在onLoadFinished 中启动Dialogs...这很烦人并且会降低用户体验。
    • 所以 AsyncTaskLoaders 与适配器的关系更密切,并且将 AsyncTask 用于登录请求等非重复性任务仍然有效,对吧?
    • 是的,基本上......更具体地说,当您异步“加载数据”时应该使用Loaders,当您想要执行单个可能昂贵的操作时应该使用AsyncTask . :)
    • 这是一个常见的android问题,不要以为你一个人解决。到目前为止,在 android 上还没有真正的解决方案。异步任务不太适合网络数据加载,加载器也不是。
    • @Snicolas 是的,服务也是一个不错的选择,我正在努力的是考虑时间、可维护性和可行性的最有效的解决方案,没有像你正在研究的那样的库,在一个小项目,计划为服务器的几个 REST 调用创建服务似乎是压倒性的。请不要误会我的意思,我喜欢模式,但与其他语言相比,像这样的简单任务在 android 上似乎过于复杂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    相关资源
    最近更新 更多