Intent und Bildschirmwechsel / Verzögertes Bildschirm-Refreshing

  • 6 Antworten
  • Neuester Beitrag
Diskutiere Intent und Bildschirmwechsel / Verzögertes Bildschirm-Refreshing im Android App Entwicklung im Bereich Betriebssysteme & Apps.
K

Karl69

Neues Mitglied
Hallo,

ich verzweifel hier an einer Sache, die vermutlich ganz einfach zu lösen ist...

Ich rufe über den Click auf eine Listview Zeile per Intent eine neue Class auf. In dieser Class wird ein Textfenster dargestellt.

Die Oncreate-Aufruf in der neuen Class sieht so aus:

@Override
public void onCreate(Bundle savedInstanceState)
{

super.onCreate(savedInstanceState);
setContentView(R.layout.network_test);
TextView tx = (TextView) findViewById(R.id.TextView1);
tx.setText("Test Start...\n");
.
.
.
tx.append("Test Ende...\n");


}


Zwischen "Test Start" und "Test Ende" überprüfe ich einige Dinge, wie z.B. ob Android mit dem Internet verbunden ist usw...
Das funktioniert ganz gut, doch der Haken ist folgender:

Der Listview Screen von dem der Intent gesendet wurde, schaltet auf den zweiten Screen mit dem Textfenster erst um, wenn die letzte Code Zeile tx.append("Test Ende...\n") erreicht wurde.
Ich möchte jedoch, dass das Textfenster schon angezeigt wird, wenn tx.setText("Test Start...\n") ausgegeben wird und nicht erst am Ende der Routine, wenn der ganze Code bereits durchgelaufen wurde.

Wie kann man das lösen?

Danke im Voraus für Eure Hilfe!

Karl
 
S

swordi

Lexikon
du musst das was zwischen teststart und ende passiert in einen Thread auslagern. dann kann er den screen schon anzeigen, obwohl er noch arbeitet
 
A

amfa

Experte
Und du solltest den Code von der onCreate Methode in die onStart Methode verschieben.
Das soll ja gerade nicht beim onCreate passieren.

OnCreate ist ja wie der Name schon sagt "während des erstellens" der Activity und erst danach wird die angezeigt, weil sie dann erst fertig erstellt wurde.
onStart hingegen wird mit dem starten (anzeigen) der activity aufgerufen.
(meine ich ansonsten guck dir den Lifecycle nochmal genauer an da stehts exakt drin was welche Methode aufgerufen wird.)
 
K

Karl69

Neues Mitglied
Danke für die Tipps!

Wichtig in dem Zusammenhang ist auch noch, dass die Textausgaben über einen eigenen Handler gemacht werden, da der Thread sich sonst eine Exception einfängt.

Eine Frage zu Java, die mich als C Programmierer und Java Anfänger beschäftigt, noch so am Rande:

Wieso werden in den ganzen Java Source die ich bis jetzt gesehen habe, die geschweiften Klammern nie ordentlich per TAB gesetzt wie in C? :confused2:

Wenn man an C gewöhnt ist , wird das Analysieren von Java-Sources ziemlich schnell zum Frust.



Gruß

Karl
 
S

swordi

Lexikon
was genau meinst mit "ordentlich per tab gesetzt"?
 
K

Karl69

Neues Mitglied
Ungefähr so (beispielhaft):

if(y!=0)
{
.
.
while(c>0)
{
.
.
if(x==3)
{
.
.
}
}
}
 
S

swordi

Lexikon
der java coding standard setzt die klammern immer ans ende

if (1==1) {

}

das ist wesentlich schöner - sag ich aber wohl auch nur weil ichs gewöhnt bin. kannst aber im eclipse alles einstellen wie du es willst.