Android: Attività che viene distrutto dopo aver chiamato Camera Intent

Ho due attività (A1, A2). A1 chiama A2 e da A2 sto chiamando l'intenzione della camera come sotto

launchIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); launchIntent.putExtra(MediaStore.EXTRA_OUTPUT,photoPath); startActivityForResult(launchIntent,CAMERA_REQUEST); 

Apre la camera e posso prendere la foto. Ma il problema si presenta una volta che faccio clic sul button di salvataggio (button a sfiora in s3), il mio onActivityResult non viene chiamato invece il metodo onDestroy di A2 viene chiamato. Ho poche logiche da fare nel fon onActivityResult.

  • Imansible trovare i nuovi AppLinks per funzionare su iOS o Android
  • Come creare una barra di scorrimento alfabetica che visualizza tutta la lettera in android?
  • android: come faccio a misurare il traffico prodotto dal mio smartphone?
  • listview con errore di gruppo radio
  • Esempio di parser HTML di Android
  • Ottieni un'istanza di attività
  • Avevo letto qualche post in Stackoverflow in merito a questo ma non avrei potuto usufruire di tale output. Ho il mio manifesto come questo per la mia seconda attività (A2)

     android:configChanges="keyboardHidden|orientation|locale" android:screenOrientation="portrait 

    Nota: in HTC One X il mio onActivityResult fn sta chiamando, ma nella mia attività S3 seconda (A2) sta diventando distrutta

    Plz condivide pensieri su questo. Grazie in anticipo

  • Perché dovrei firmare la mia APK di applicazione prima del rilascio
  • java.lang.outofmemoryerror dimensione bitmap supera il budget di vm su bitmap
  • Lockscreen nativo di Android ICS
  • Android: consigli di AsyncTask: class privata o class pubblica?
  • Qual è il modo più efficace per memorizzare una lunga list di oggetti nel Realm?
  • Verifica lato server dell'acquisto della versione 3 di fatturazione in-app di Google Play (parte 2)
  • 5 Solutions collect form web for “Android: Attività che viene distrutto dopo aver chiamato Camera Intent”

    ho avuto lo stesso problema.i sarà pazzo, ma finalmente ho trovato una soluzione qui . il problema è che quando fai clic sul button "salva" della camera, il metodo di orientamento del cambiamento di attività viene distrutto e ricreato. cercare di impostare

    android:configChanges="orientation|screenSize"

    in android manifest (non solo android:configChanges="orientation" perché come suggerito qui , non funziona per API livello 13 o superiore).

    impedisce di distruggere l'attività, funziona per me.

    La lancia della camera richiede molta memory. Quindi i dispositivi con sistema a basso memory android chiudono le attività in esecuzione in background e quindi viene chiamato onCreate (). A causa di questo fotopatico che hai dato diventa nullo e non sarai in grado di get l'image salvata.

    La soluzione è quella di salvare il fotopatico mentre il sistema sta distruggendo la tua attività e poi ripristinarlo di nuovo.

     @Override public void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub outState.putString("photopath", photopath); super.onSaveInstanceState(outState); } @Override protected void onRestoreInstanceState(Bundle savedInstanceState) { // TODO Auto-generated method stub if (savedInstanceState != null) { if (savedInstanceState.containsKey("photopath")) { photopath = savedInstanceState.getString("photopath"); } } super.onRestoreInstanceState(savedInstanceState); } 

    e nel caso in cui lo fai su Frammento.

     @Override public void onSaveInstanceState(Bundle outState) { // TODO Auto-generated method stub outState.putString("photopath", photopath)); super.onSaveInstanceState(outState); } @Override public void onViewStateRestored(Bundle savedInstanceState) { // TODO Auto-generated method stub if (savedInstanceState != null) { if (savedInstanceState.containsKey("photopath")) { photopath = savedInstanceState.getString("photopath"); } } super.onViewStateRestored(savedInstanceState); } 

    Assicurarsi di non avere l'impostazione "Non tenere le attività" dell'attivista, in quanto distruggerà l'attività che stai lasciando.

    L'applicazione della camera richiede molta memory e per liberare la memory, il sistema operativo deve uccidere applicazioni di background, incluse le tue. Questo è normale per tutte le applicazioni Android. La tua attività verrà ricreata quando l'applicazione della camera tornerà. Per mantenere le informazioni onSaveInstanceState() stato dell'attività, ignorare onSaveInstanceState() per memorizzare i dati e leggerli in onCreate() .

    La mia attività ha molte attività in esecuzione quando chiamo Camera Intent .. Ho ascoltatori di posizioni GPS e molti altri compiti.

    Quando ritorna dall'intento della camera, devo aggiungere un marker a una mappa nella posizione in cui è stata scattata l'image. Quindi, se l'utente ha preso più di un'image, dovrebbe mostrare marcatori per each image.

    Se distruggerà la mia attività each volta che chiamerò Camera Intent tutte le informazioni che avevo prima sulle marcatori e sulla loro posizione andranno persi. Inoltre, dovrò nuovamente inizializzare la mappa. Questo è un grosso problema per la mia applicazione.

    E sì, accade solo quando prendo una foto in modalità Paesaggio. Se prendo l'image in ritratto tutto finisce finora ..

    Cercherò di utilizzare android:configChanges="orientation|screenSize" Come suggerito qui .. Spero che aiuterà!

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.