Portál AbcLinuxu, 4. května 2024 08:43


Dotaz: Thread v Androidu a obnova aktivity

6.3.2013 18:13 RYU.cz | skóre: 16 | Vsetín
Thread v Androidu a obnova aktivity
Přečteno: 224×
Odpovědět | Admin
Zdravím, situace je taková, že, aktivita se stará o výpis textu který se 
stahuje ze serveru. Obnova probíhá po stisku tlačítka a o stažení dat se stará
samostatný thread (extends Thread).

Aktivita po stisku tlačítka udělá toto:
- zakáže tlačítka
- zobrazí loading dialog
- nastaví parametry obnovy do objektu threadu
- spustí thread.run()

Thread po dokončení run() spustí metodu v aktivitě která:
- obnoví textview
- povolí tlačítka
- odstraní dialog

Všechno vypadá ok, ale když aplikaci spustím zákaz tlačítek a loading dialog
se zobrazí až po skončení threadu. Nevím co mám špatně.
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz

Řešení dotazu:


Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Luboš Doležel (Doli) avatar 6.3.2013 21:01 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Thread v Androidu a obnova aktivity
Odpovědět | | Sbalit | Link | Blokovat | Admin
A ta metoda v aktivitě používá runOnUiThread()? Jinak mě tam trochu mate, jak Thread po dokončení run() něco pouští.
7.3.2013 11:05 RYU.cz | skóre: 16 | Vsetín
Rozbalit Rozbalit vše Re: Thread v Androidu a obnova aktivity
Thread ma ukazatel na instanci aktivity a tam zavola metodu.
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz
Luboš Doležel (Doli) avatar 8.3.2013 01:00 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
Rozbalit Rozbalit vše Re: Thread v Androidu a obnova aktivity
Tím jsem vám chtěl naznačit, že runOnUiThread() musíte používat... nemůžete si jen tak volat metody Activity z vlákna.
7.3.2013 11:06 RYU.cz | skóre: 16 | Vsetín
Rozbalit Rozbalit vše Re: Thread v Androidu a obnova aktivity
Odpovědět | | Sbalit | Link | Blokovat | Admin
Dodám ještě, že to teď zkouším přes AsyncTask, ale nemůžu říct, že by se mi nějak dařilo.
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz
Řešení 1× (RYU.cz (tazatel))
7.3.2013 12:42 RYU.cz | skóre: 16 | Vsetín
Rozbalit Rozbalit vše Re: Thread v Androidu a obnova aktivity
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak AsyncTask se zdá být řešením, pro ostatní: v metodě doInBackground() se opravdu nedostanete k žádným referencím na jiné objekty (běží ve vlastním vlákně)
Linux is like a teepee - no windows, no gates, apache inside. | RYU.cz

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.