【问题标题】:Using cwac-endless adapter with existing/custom AsyncTasks将 cwac-endless 适配器与现有/自定义 AsyncTask 一起使用
【发布时间】:2012-07-17 10:04:37
【问题描述】:

我目前正在使用我认为是 Android 中的一种常见模式,即使用各种 AsyncTask 从网络获取数据,并在完成时使用接口回调机制更新一个简单的 ArrayAdapter。

cwac-endless 很容易插入以添加分页类型滚动,除了它假设它将为您处理运行后台任务的基本问题。这是否意味着我基本上必须撕掉我所有的 AsyncTask 类和关联的接口,并将所有代码从 doInBackground 移动到我的 EndlessAdapter 的 cacheInBackground 中?

我尝试过的大多数解决方案似乎最终都复制了 cwac-endless 中的大部分代码,所以我觉得必须有更清洁的解决方案来将此适配器与现有的 AsyncTask 一起使用?

【问题讨论】:

    标签: android android-asynctask adapter commonsware-cwac


    【解决方案1】:

    cwac-endless 相当容易插入以添加分页类型滚动,除了它假设它将为您处理运行后台任务的基本问题

    处理“为您运行后台任务”是适配器背后的重点。

    这是否意味着我基本上必须撕掉我所有的 AsyncTask 类和关联的接口,并将所有代码从 doInBackground 移动到我的 EndlessAdapter 的 cacheInBackground 中?

    如果您想按原样使用EndlessAdapter,可以。

    当然欢迎您获取代码,修改 getView() 以不使用其自己的 executeAsyncTaskAppendTask 并用您自己的逻辑替换该逻辑。然而,AppendTask 中的几乎每一行代码都是EndlessAdapter 工作所必需的。而且我不知道任何无穷无尽的构造如何与“自定义 AsyncTasks”plural 一起工作,因为工作必须有一个明确的结束,以便我们知道在列表中显示新行并获得摆脱待处理的View。因此,您仍然需要指定您的一些AsyncTask 扮演AppendTask 的角色,执行您当前正在执行的所有操作AppendTask 中的所有逻辑。这是否比仅使用现有的 EndlessAdapter 代码库更简单,我不能说,因为我不知道你的代码。

    我觉得必须有更清洁的解决方案来将此适配器与自定义 AsyncTasks 一起使用?

    您是第一个提出问题的人,因此在输入此答案之前我从未考虑过。我会考虑一下并may try to do some refactoring 来帮助您解决方案。

    【讨论】:

    • 感谢您的帮助。我说 AsyncTasks 复数是为了强调需要重建多个任务/适配器对的事实,不一定是我试图使用多个任务来填充适配器。正如我所提到的,我已经开始寻找对 AppendTask 进行更多控制的方法,所以如果我发现一些有用的东西,我会很乐意提交它。只是想确定我没有看到明显的方式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多