【问题标题】:Android multiple Loader for http request用于 http 请求的 Android 多个 Loader
【发布时间】:2016-04-11 04:35:07
【问题描述】:

我正在使用 Javascript,想在 Android Java 中做类似的事情。

 //jquery
$.when(Ajax1, Ajax2, Ajax3)
    .done(function(response1){    
         // to do after all complete

         })
     .fail(function(err){
         // err

         });


// Or AsyncJs
async.parallel([
    function(callback){

     },
    function(callback){

    }
],
 // optional final callback
 function(err, results){

 });

在 Android 中,我知道 Loader 并阅读了所有这些内容。 http://developer.android.com/guide/components/loaders.html

现在我知道如何只加载 1 个 loadTask。

但如果我想加载许多任务,例如:ProfileTask、OrderTask、ProductTask、...
如果全部完成,则显示 UI,
如果其中一个无法加载,则发出警报并单击以重试。

【问题讨论】:

  • 所以用不同的ID多次调用LoaderManager#initLoader(id, args, callback);
  • @pskink 我知道使用很多 ID。但是如何做这个概念,当它们全部完成或 1-loader 失败时,然后取消所有剩余的 loader 并通知 Caller。
  • 它有什么问题?只需调用 N 个加载器并在 onLoadComplete 检查状态,如果有人失败则取消其余挂起的加载器并通知调用者失败,如果没有,检查已完成加载器的数量是否 == N,如果是则通知调用者成功

标签: java android asynchronous android-asynctask loader


【解决方案1】:

我会推荐一种不同的方法。查看IntentService 或Javas Executors 类,从那里调用您的“xxxTasks”并通过Broadcast/EventBus 将结果传回您的活动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多