2016-09-10 2 views
-2

Im Erstellen einer Quiz-App für Android und ich verwende Firebase, um meine Daten zu speichern.Wenn die App startet alle Fragen werden in der onCreate() -Methode geladen, aber das Problem ist, dass meine App starten, bevor das Laden abgeschlossen ist und es abstürzt. Was ich tun möchte, ist ein Ladebildschirm zu haben, und die Fragen beginnen nicht, bis das Laden abgeschlossen ist. Jede Hilfe würde sehr geschätzt werden.Firebase laden Daten für Android Quiz App

Danke.

+0

Sie haben vergessen, den [minimalen Code, der das Problem reproduziert] (http://stackoverflow.com/help/mcve) anzuhängen. Ohne das zu sehen, wird es schwierig sein, zu helfen. –

+0

Es gibt kein Problem in dem Code, was ich brauche, ist ein Ladebildschirm am Anfang, der wird enden, wenn alle Fragen von Firebase geladen werden, aber ich habe keine Ahnung, wie man das macht. – Massadi

Antwort

0

Da Sie große Daten von Firebase laden, ist es besser, es in separaten Thread zu holen und Ihre Hauptaktivität zu aktualisieren, nachdem es vollständig abgerufen wurde. Zu diesem Zweck können Sie ASYNC TASK verwenden.

class fetchdata extends AsyncTask 
{ 
@Override 
    protected void onPreExecute() { 
     // Runs on the UI thread before doInBackground() 
    } 

@Override 
    protected Object doInBackground(Object... params) { 
     // Fetch data here 
     Log.d(TAG, "[email protected] from another thread"); 

     return new Object(); 
    } 
@Override 
    protected void onPostExecute(Result result) { 
     // Runs on the UI thread after doInBackground() 
//update main activity here 
    } 
} 

Nach Asynchron-Task-Klasse erstellen, müssen Sie es in Hauptklasse aufrufen durch:

fetchdata obj = new fetchdata(); 
obj.execute();//this will execute async task seperatly. 

Sie auch Fortschrittsdialog für die Zeitdaten in Asynchron-Aufgabe verwenden können abgerufen werden.