onDestroy () no se llamará después de this.finish ()

Me pregunto por qué el Motorola Milestone con 2.1-update1 se comporta de manera diferente del Emulador o, por ejemplo, el Nexus One. Estoy intentando salir de mi aplicación con:

@Override protected void onPause() { if(mayDestroyActivity) this.finish(); super.onPause(); } 

Esto funciona bien en Emulator o en Nexus One. onDestroy() se llama inmediatamente después onPause() y onStop . Pero no para el Milestone. En su lugar, onDestroy() se llama cuando se inicia otra actividad. Su sección en el Manifiesto se parece a esto:

 <activity android:name=".MyActivity" android:configChanges="orientation|keyboardHidden" android:label="@string/questionnaire_item" android:launchMode="singleInstance" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:windowSoftInputMode="adjustPan"> <intent-filter> <category android:name="android.intent.category.OPENABLE" /> </intent-filter> </activity> 

¿Alguien tiene una pista sobre esto? Mi aplicación depende de salir correctamente ya que guardar todo el progreso en onDestroy()

Gracias,
Steff

Si el usuario sale a la pantalla de inicio, esto no significa que deba salir de la aplicación. En la mayoría de las veces, dará una mejor experiencia de usuario si la aplicación sólo va al fondo. Trate de confiar en saveInstanceState y onPause.

Salir de una aplicación se ve como una mala práctica en el mundo de Android, con un teléfono con un buen sistema para el verdadero multitouch puede obtener una mejor experiencia del usuario si la aplicación sigue funcionando después de presionar la pantalla de inicio.

Lo estas haciendo mal. Esto es lo que dice el Doc:

Nota: ¡no cuente con que este método sea llamado como un lugar para guardar datos! […] Hay situaciones en las que el sistema simplemente matará el proceso de hospedaje de la actividad sin llamar a este método (o cualquier otro) en él, por lo que no debe usarse para hacer las cosas que están destinadas a permanecer alrededor después de que el proceso desaparece .

http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29

Debe utilizar onSaveInstanceState , marque este enlace.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.