1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Activity im Hintergrund ausführen ????

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von zblack, 30.07.2012.

  1. zblack, 30.07.2012 #1
    zblack

    zblack Threadstarter Gast

    Hallo Freunde,
    ich versuche seit Tagen verzweifelt Folgendes hinzukriegen.
    Ich habe eine StartActivity die, solange ein Bild anzeigt, solange eine andere Activity im Hintergrund vollständig aufgebaut ist. Erst dann wird das Fenster der anderer Activity angezeigt.
    Dh., dass ich die erste Activity solange schlaffen lassen soll, bis die andere Activity aufgebaut wird.
    Doch leider habe ich noch keine Idee oder Lösung dafür gefunden.

    Ist dies überhaupt möglich?

    Bitte Hilfe.
    Mit freundlichen Grüßen.
     
  2. DieGoldeneMitte, 30.07.2012 #2
    DieGoldeneMitte

    DieGoldeneMitte Android-Lexikon

    Beiträge:
    1,230
    Erhaltene Danke:
    256
    Registriert seit:
    05.02.2010
    Phone:
    Nexus 5X
    Tablet:
    Nexus 7 (2013)
    Das müsse eigentlich möglich sein, ist aber kompliziert. Denn es müsste die "Splash" Activity (oder ein Service) die Daten laden und an die "Payload" Activity übergeben.

    Es gibt noch andere Möglichkeiten: Du kannst den Splash als Dialog realisieren oder auch innerhalb einer Activity mit mehreren ContentViews arbeiten.
     
  3. v Ralle v, 30.07.2012 #3
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Ich würde mit Fragments und den Inhalt bei android.R.id.content austauschen. Spart den Overhead einer extra Activity. Das Laden der Daten kannst du mit dem AsyncTask machen. In der Post Methode kannst du dann ganz einfach den Inhalt mit der FragmentTransaction austauschen.
     
  4. zblack, 30.07.2012 #4
    zblack

    zblack Threadstarter Gast

    hast du vlt ein beispiel dafür ??
     
  5. v Ralle v, 30.07.2012 #5
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Mach ich egtl. selten, weil alles dafür in der Doku steht, aber na gut:

    Code:
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    
    		Fragment fragment = getFragmentManager().findFragmentById(android.R.id.content);
    		if (fragment == null) {
    			ContentFragment contentFragment = new ContentFragment();
    			getFragmentManager().beginTransaction().add(android.R.id.content, contentFragment).commit();
    		}
    		
    		if (savedInstanceState == null) {
    			new MyExample().execute();
    		}
    	}
    	
    	private class MyExample extends AsyncTask<Void, Void, Void> {
    
    		@Override
    		protected Void doInBackground(Void... params) {
    			// TODO Auto-generated method stub
    			return null;
    		}
    		
    		@Override
    		protected void onPostExecute(Void result) {
    			getFragmentManager().beginTransaction().replace(android.R.id.content, new ContentFragment()).commit();
    		}
    	}
    Es geht auch schöner mit Loadern und über Interfaces.
     

Diese Seite empfehlen