2016-04-11 9 views
1

Ich benutze Javascript und möchte etwas ähnliches in Android Java tun.Android mehrere Loader für http Anfrage

//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){ 

}); 

in Android Ich kenne Loader und alles lesen. http://developer.android.com/guide/components/loaders.html

Jetzt weiß ich, wie nur laden nur 1 loadTask.

aber wenn ich möchte viele Aufgaben ab laden: ProfileTask, OrderTask, ProductTask, ...
Wenn alle vollständig dann die Benutzeroberfläche angezeigt werden,
Wenn einer von ihnen scheitern dann Alarm zu laden, und klicken Sie erneut zu versuchen.

+0

so rufen 'LoaderManager # initLoader (ID, Argumente, Rückruf);' mehrere Male mit verschiedenen IDs – pskink

+0

@pskink verstehe ich viele IDs verwenden. Aber wie man das Konzept macht, wenn alle komplett sind oder der 1-Loader fehlerhaft ist, dann annulliere alle verbleibenden Lader und benachrichtige den Anrufer. – riseres

+0

und was ist das Problem damit? Rufen Sie einfach N loaders auf und überprüfen Sie in 'onLoadComplete' den Status, falls jemand fehlgeschlagen ist, brechen Sie den Rest der anstehenden Loader ab und benachrichtigen Sie den Aufrufer mit dem Fehler, wenn nicht, überprüfen Sie, ob die Anzahl der fertiggestellten Loader == N ist Erfolg – pskink

Antwort

0

Ich würde einen anderen Ansatz empfehlen. Werfen Sie einen Blick auf IntentService oder Javas Executors Klasse, rufen Sie Ihre "xxxTasks" von dort und kommunizieren das Ergebnis über einen Broadcast/EventBus zurück zu Ihrer Aktivität.