setContentView() in Thread ausführen

  • Antworten:6
  • Bentwortet
Aaron B.
  • Forum-Beiträge: 206

14.07.2013, 21:48:20 via App

Hallo @ all

Ich versuche gerade, einen Thread im Hintergrund laufen zu lassen, um einige Daten zu laden und dann in einen View zu setzen, welcher dann mit setContentView angezeigt werden soll. Die App stürzt jedoch beim Aufrufen von setContentView im Thread ab. Ich habe gelesen, dass man diese void in einem Nicht-UI-Thread nicht ausführen kann.

Gibt es eine Möglichkeit, den View mit setContentView, während der Thread läuft, anzuzeigen?

LG

Antworten
LitteM
  • Forum-Beiträge: 141

14.07.2013, 21:53:49 via Website

Schau dir mal Handler oder AsyncTask an. Das sollte dir weiterhelfen :)

Antworten
Aaron B.
  • Forum-Beiträge: 206

14.07.2013, 21:58:45 via App

Danke :)

Kann man mit einem Handler eine Runnable im Hintergrund laufen lassen?

LG

Antworten
impjor
  • Forum-Beiträge: 1.793

14.07.2013, 22:14:47 via App

Am einfachsten ist es wohl, wenn du dem Thread deinen Activity mitgibst und dann
Activity.runOnUiThread( new r Runnable {
public void run (){
setContentView(...);
}
});

Gruß

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Aaron B.
  • Forum-Beiträge: 206

14.07.2013, 22:19:56 via App

Ok also das mit runOnUiThread() funktioniert. :)

Vielen Dank für die Hilfe.

LG

Antworten
Ultimate Software
  • Forum-Beiträge: 110

17.07.2013, 12:12:24 via Website

Laden von Daten und aktualiseren der Gui sollten nicht in einem Thread laufen bzw. das Laden nicht im GUI-Thread. Das wird zu ANR's führen.

<td class="alt1"> <!-- google_ad_section_start -->Mehrere WLANs?? Versuch doch mal den <a href="http://goo.gl/7ojEp&quot; target="_blank">SSID Selector</a>: <img src="images/smilies/extra/thumbsup.gif" border="0" alt="" title="Thumbsup" class="inlineimg" /><!-- google_ad_section_end --> </td>

Antworten