Das Thema ist erledigt, ich habe das mit asynctask gelöst.
Mit Problemen meinte ich die Kommunikation zwischen Hintergrund-Thread und UI. Aber das hat sich erledigt.
Vielen Dank.
Das Thema ist erledigt, ich habe das mit asynctask gelöst.
Mit Problemen meinte ich die Kommunikation zwischen Hintergrund-Thread und UI. Aber das hat sich erledigt.
Vielen Dank.
Es existiert eigentlich noch kein Code. Hier mal meine MainActivity, die zu Begin geladen wird:
public class MainActivity extends AppCompatActivity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
System.out.println("onCreate");
}
@Override
protected void onStart() {
super.onStart();
System.out.println("onStart");
}
@Override
protected void onRestart() {
super.onRestart();
System.out.println("onRestart");
}
@Override
protected void onResume() {
super.onResume();
System.out.println("onResume");
}
@Override
protected void onPause() {
super.onPause();
System.out.println("onPause");
}
@Override
protected void onStop() {
super.onStop();
System.out.println("onStop");
}
@Override
protected void onDestroy() {
super.onDestroy();
System.out.println("onDestroy");
}
}
Alles anzeigen
Folgendes Problem: Das in der Manifest.xml festgelegte Theme der Activity wird geladen. Nun soll die in der entsprechenden layout.xml definierte TextView mit einem fest definiertem Text und eine ProgressBar angezeigt werden, um den User zu zeigen: Es wird gerade etwas geladen. Mit diesem Code wird auch das layout geladen. Füge ich jedoch jeglichen Code an den Stellen onCreate(), onStart() oder onResume() ein, wird dieser Code zunächst abgearbeitet, bevor das Layout geladen wird. Es soll aber "parallel" erfolgen. Es soll das layout angezeigt werden und "gleichzeitig" soll im Hintergrund etwas geladen werden.
Das Problem ist, so weit ich es verstanden habe, dass ich mich in dem Thread des UI bewege und dort alles sequenziell abgearbeitet wird. Nun ergeben sich für mich 2 logische Lösungen: Der auszuführende Code soll ausgeführt werden sobald das UI komplett geladen ist (da an dieser Stelle keine weitere Userinteraktion geschieht) oder aber ich lasse den kompletten Code in einem separaten Thread ausführen, wobei ich dabei dann vermutlich auf andere Probleme stoßen werde (z.B. dem UI mitteilen, dass nun eine neue Activity gestartet werden soll).
Ich hoffe mein Problem ist damit etwas deutlicher geworden.
Hallo, ich bin noch ein ziemlicher Anfänger in der Android-Entwicklung und habe da ein kleines Problem. Ich denke ich weiß auch wo das Problem liegt, aber nicht wie ich dieses löse.
Ich habe zunächst nur 2 Activities: Eine Splash-Activity und eine Login-Activity.
Beim Starten der App wird die Splash-Activity angezeigt, diese besteht einfach nur aus eine TextView und eine ProgressBar.
Diese Activity soll solange angezeigt werden, bis überprüft wurde, ob der User bereits eingeloggt ist. Ist der User noch nicht eingeloggt, soll die Login-Activity angezeigt werden.
Folgendes Problem: Es ist egal an welcher Stelle (onCreate, onStart, onResume) ich den Code zur Überprüfung schreibe (oder überhaupt irgendwelchen Code), die komplette Activity mit der TextView und der ProgressBar wird erst nach Abarbeitung des Codes geladen. Sprich: Es wird nur das grundlegende Style-Theme angezeigt, aber nicht die Elemente aus dem Layout. Erst nach dem Abarbeiten des Codes wird das Layout geladen. Ich denke das Problem ist, dass das Layout erst nach onResume(); geladen wird und jeglicher Code vorher abgearbeitet wird.
Aber an welcher Stelle soll ich nun genau meinen Code platzieren? Die ProgressBar soll dem User demonstrieren, dass derzeit etwas geladen wird (Die Anmeldung) und dies soll im Hintergrund geschehen.
Ich habe es bereits mit einem separatem Thread probiert, da gab es dann aber mehr Probleme und unschönes programmieren statt eine zufriedene Lösung.
Ich bedanke mich für jegliche Hilfe