2016-07-01 17 views
0

Ich implementieren eine Karte auf meiner Aktivität, aber Breite und Länge kommen von einem Server. AsyncTask wird für diese Werte anfordert, aber ich weiß nicht, wie ich kann warten für Daten vor dem Start der OnMapReadyCallback Rückruf empfangen werden ...warten Daten vor dem Start OnMapReady Rückruf

hier ist mein Code:

@Override 
public void onCreate(Bundle savedInstanceState) { 
.... 
//retrieve the latitude and longitude 
new ProgressTask().execute(); 

m = ((SupportMapFragment) this.getSupportFragmentManager() 
      .findFragmentById(R.id.map)); 
//need to wait for AsyncTask... 
m.getMapAsync(this); 

Ich erwartete das starten Befehl

m.getMapAsync(this); 

im OnPostExecute meiner AsyncTask:

@Override 
protected void onPostExecute(OnMapReadyCallback result) { 
.... 
.... 

aber ich weiß nicht, wie man die OnMapReadyCallback params an die AsyncTask übergeben?

Antwort

1

Ich fand schließlich eine Lösung (nicht sicher, dies ist das beste ...), um den Kontext meiner Tätigkeit abzurufen (die OnMapReadyCallback implementiert) Ich rufe nur die

m.getMapAsync(this); 

von einem Verfahren aus von onPOstExecute:

@Override 
protected void onPostExecute(Fragment result) { 
.... 
loadMap(); 
} 

public void loadMap(){ 

    m.getMapAsync(this); 
}