Während dem Abrufen von Daten über Netty Loader anzeigen

  • Während dem Abrufen von Daten über Netty Loader anzeigen

    Hallo,

    ich arbeite derzeit an einer App, für die ich beim Starten eine Verbindung über Netty aufbaue, um Daten abrufen zu können. Diese Daten sollen in dem Start-Fragment des ViewPagers angezeigt werden. Dazu möchte ich einen Loading-Screen anzeigen. Deshalb habe ich mir überlegt, eine neue Activity zu erstellen, in der die Verbindung zum Netty-Server aufgebaut wird und erst danach das ViewPager-Objekt erstellt wird, damit das Fragment die Daten erhalten kann.

    Nachdem die Daten empfangen und das ViewPager-Objekt erstellt wurde, kann diese Activity beendet werden und die MainActivity wird gestartet. Nun möchte ich jedoch weitere Anfragen über das Client-Objekt senden können, sodass das Client-Objekt dann an die MainActivity weitergegeben werden soll. Zudem brauche ich auch den ViewPager Adapter.

    Intent intent = new Intent(getApplicationContext(), MainActivity.class);
    startActivity(intent);

    Dann habe ich einfach in der MainActivity ein Singleton angelegt, sodass ich in der onCreate-Methode die statische Variable instance mit this gefüllt habe. Das Problem ist nun, dass diese Variable immer noch null ist, nachdem die Methode startActivity abgeschlossen ist, sodass eine NullPointerException auftritt, wenn ich Versuche die Variable client in der MainActivity mit dem neu erstellen Client-Objekt aus der Loading Activity zu füllen.

    Meine Frage ist nun zunächst, ob dieser Ansatz mit zwei Activities grundlegend sinnvoll ist. Mir würde eine Variante mit nur einer Activity deutlich besser gefallen. Dann ist eine weitere Frage, wie ich das Client-Objekt und den ViewPager an die MainActivity weitergeben kann.
    Ist es möglich mein eigenes Client-Objekt und den ViewPager mit Gson zu serialisieren und dann über putExtra() weiterzugeben?
  • Hi so wird das wohl nicht gehen. Wenn du eine neue activity mit intent startest wird die alte activity beendet und du kannst nicht mehr darauf zugreifen.
    Verstehe deinen Ansatz nicht . Bei fragmenten läuft die mainactivity immer im Hintergrund, die Fragmente laufen so zusagen in der activity. Alleine kann ein Fragment nicht laufen.
    Wenn du ein Start Bildschirm haben willst dann mache dir ein Startfragment.
    Fragmente werden auch nicht mit einen intent gestartet. Sondern über den fragmentmanager und transaction.
    Ein Feedback auf Tipps ist auch schön. :P
  • Mein Ansatz soll sein, dass beim Starten der App die Activity StartUp geöffnet wird, in der das Client-Objekt initalisiert wird und danach der ViewPager eingerichtet wird. In der Layout-Datei ist einfach nur ein Logo zu sehen. Danach wird diese Activity beendet und die MainActivity wird gestartet. Dahin soll nun das Client-Objekt und der ViewPager weitergegeben werden. Mein zweites Problem ist nun auch, dass der ViewPager in der Layout-Datei von der MainActivity liegt und ich aber das ViewPager-Objekt in der StartUp-Activity erstellen möchte:

    ViewPager pager = (ViewPager) findViewById(R.id.view_pager);

    Damit tritt eine NullPointerException auf.