2016-06-21 34 views
0

Derzeit habe ich ein Problem, die Aktivität wird zerstört und neu erstellt, wenn ich aus der Galerie zurück.
Hier sind die Schritte:Android: Aktivität ist zerstört, wenn Bild aus der Galerie auswählen

  1. Von "Foto-Fragmente", ich Absicht beginne Bild aus der Galerie zu holen:

    Intent intent = new Intent(); 
    intent.setType("image/*"); 
    intent.setAction(Intent.ACTION_GET_CONTENT); 
    startActivityForResult(Intent.createChooser(intent, "Select File"), SELECT_IMAGE); 
    
  2. In der Galerie, wähle ich "Kamera" -Ordner, dann hart drücken " Home" Button. Um zum Startbildschirm des Geräts zu gelangen.
  3. Öffnen Sie die Kamera-App und erfassen Sie ein Bild.
  4. meines app (Strom aus der Galerie) Gehen hin, und das Bild von Schritt 3

    ---> Dann App Aktivität zerstört wird erfaßt holen und wieder neu erstellt. Das liegt daran, dass der Bildschirm aus zwei Fragmenten besteht: Die Benutzeroberfläche von "Fotofragment" und "Heimatfragment".

Wissen Sie, wie meine Aktivität neu erstellt wird? und wie man es repariert?
Ich verbrachte fast einen Tag dafür, aber es hat immer noch kein Ergebnis.

Jede Hilfe wird sehr geschätzt. Vielen Dank.

+0

Legen Sie Ihre Aktivitätsklassen und Ausnahme in Logcat – Stallion

+0

Es keine Ausnahme haben, nur onDestroy() aufrufen, dann onCreate() erneut aufrufen. Danken. –

Antwort

0

Das Verhalten ist korrekt, da es die Aktivität zerstört und neu erstellt, wenn Sie von Image Picker zurückkommen. Sie müssen Ihren Aktivitätsstatus mithilfe der folgenden Methoden speichern und wiederherstellen.

Speichern ->onSaveInstanceState wiederherstellen ->onRestoreInstanceState

Mehr Refs ->Recreating Activity

Sie können Fragmente auch das gleiche tun, indem onSaveInstanceState mit zu speichern und onActivityCreated Zustand wiederherzustellen.

+0

meine Aktivität hat Viewpager, die mehrere Fragmente hat. Eines der Fragmente beginnt eine Absicht, Bilder auszuwählen. 'Intent i = neue Absicht (Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); i.setType ("Bild/*"); getActivity(). StartActivityForResult (i, ACQUIRE_IMAGE_REQUEST_CODE); '. nachdem ich das Bild getippt habe oder auf die Aktivität geklickt habe, die die Absicht, z. B. Galerie, aufgelöst hat, wird mein Aktivitätslayout gelöscht. ** Es wird nicht neu erstellt, da ich einen Log-Code für den Ausdruck in onCreate() gesetzt habe, aber sie werden nicht gedruckt. ** –

+0

Wird onActivityResult aufgerufen? – PravinCG

+0

ja, es wurde aufgerufen und ich kann das Bild, das ich aus der Galerie ausgewählt habe. aber zwischen dem Klicken auf das Bild in der Galerie und dem Bild, das in meinem Fragment in meinem Viewpager erscheint, ** wird meine Aktivität für einige Zeit leer. Ich habe ein Hintergrundbild, das ich auf meine Tätigkeit eingestellt habe und es ist das einzige gezeigte worden !. viewpager verschwindet und alle anderen Ansichten darunter ** –