Kotlin - AsyncTask, doInBackground – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Kotlin - AsyncTask, doInBackground – Java – Fórum – Programujte.comKotlin - AsyncTask, doInBackground – Java – Fórum – Programujte.com

 

Marky780
Duch
8. 1. 2022   #1
-
0
-

Zdravím,

jsem začátečník v kotlinu/Javě, tak se předem omlouvám.

Jde mi o to, že bych potřeboval stahovat json data z více URL, ale nemám ponětí, jakých způsobem mohu data zpracovat a využít v doInBackground a onPostExecute. Momentálně mi to funguje z jedné URL, ale potřeboval bych abych v onPostExecute mohl zpracovávat json data i z další URL adresy.

Předem děkuji za rady.


override fun doInBackground(vararg params: String?): String? {

var response:String?

try{

response = URL("url").readText( Charsets.UTF_8 ) }

catch (e: Exception){ response = null }

return response

}
 


override fun onPostExecute(result: String?) {

super.onPostExecute(result)

try {

/* Extracting JSON returns from the API */

val jsonObj = JSONObject(result)

val main = jsonObj.getJSONObject("main")
 

Nahlásit jako SPAM
IP: 91.228.45.–
Kit+15
Guru
8. 1. 2022   #2
-
0
-

#1 Marky78
K čemu je dobré spolknutí výjimky a vrácení pitomého null?

Nahlásit jako SPAM
IP: 46.135.80.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
gna
~ Anonymní uživatel
1891 příspěvků
8. 1. 2022   #3
-
0
-

Prostě místo jedné adresy předáš seznam adres. Ten pak v cyklu projdeš, zpracuješ a vrátíš seznam výsledků.

Případně nemusíš vracet seznam výsledů, ale můžeš je reportovat průběžně. Tj. v tom cyklu použiješ publishProgress pro poslání dat do onProgressUpdate.

Pokud chceš to stahování dělat paralelně, tak prostě vytvoř samostatný task pro každou adresu. Ideálně asi v kombinaci s ThreadPoolExecutorem, kde definuješ velikost fronty a kolik tasků se má zpracovávat souběžně.

V Kotlinu nedělám, takže konkretní kód ti neukážu.

Nahlásit jako SPAM
IP: 213.211.51.–
Marky780
Duch
8. 1. 2022   #4
-
0
-

#3 gna
Výborně, děkuji za informace. Moc mi to pomohlo. Hezký zbytek večera. :)

Nahlásit jako SPAM
IP: 91.228.45.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 3 hosté

Podobná vlákna

Android Studio - AsyncTask — založil Borisek

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý