¿Puedo estar seguro de que la aplicación Android terminó de ejecutarse comprobando isFinish () en OnPause () de la actividad principal?
Tengo que borrar algunos datos de la aplicación después de que mi aplicación se acaba de ejecutar. Por lo que sé onDestroy()
no se puede llamar. Así que decidí comprobar si isFinishing() == true
en onPause()
de la actividad raíz para ver si esta actividad y otras de mi aplicación están en proceso de terminar. Pero dudo que esta actividad:
<activity android:name="com.test.AuthorizationActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
Será una actividad de raíz? ¿Y esto es una manera correcta en general?
- Cómo borrar distinct_id en mixpanel android cuando el usuario se desconecta?
- Enviar y recibir sobre el mismo socket
- Obtenga la colección de nombres de parámetros de la url de Java / Android
- ¿Cómo cambia el color del subrayado de Edittext en 4.0+?
- Cómo usar daga en un proyecto de biblioteca de Android
- Escritura de audio en el servidor a través de un socket TCP
- Recuperación del valor nulo de la base de datos Sqlite en android
- Cómo utilizar HdmiControlService
- ¿Cómo crear carpetas en Google Drive sin duplicar?
- InputStream no recibe EOF
- Error de vista web de Android "Señal fatal 5 (SIGTRAP)"
- Cómo prevenir "Programar el reinicio del servicio bloqueado"?
- Guardar el estado de la aplicación de Android
Creo que necesitas repensar tu diseño porque parece que está isFinishing
es verdad solamente cuando el finish
se llama en la actividad y no cuenta para los casos donde la actividad se destruye debido a la memoria baja.
De los documentos :
Esto puede suceder ya sea porque la actividad está terminando (alguien llamó finish () en ella o porque el sistema está destruyendo temporalmente esta instancia de la actividad para ahorrar espacio). Puede distinguir estos dos escenarios con el método isFinishing ().
Para lo que está sugiriendo es posible almacenar los datos de estado de la aplicación en variables static
, que se borrarán cuando finalice su proceso de aplicación (cuando finalice la última actividad / servicio).
¿Dónde leíste que onDestroy
no puede ser llamado? onDestroy
se llama cuando la aplicación está terminada, de acuerdo con los documentos Android .
¿Hay alguna posibilidad de que se mezclen en ir de fondo y ser destruidos?
Las aplicaciones tienen vidas diferentes: las vidas enteras, visibles y de primer plano. Se requieren diferentes devoluciones de llamada para esos cambios de estado, como se describe aquí .
OnDestroy () se llama cuando se destruye la actividad. Por lo que si queremos comprobar si la aplicación meteorológica está cerrada o no, entonces tenemos que implementar el servicio genérico que puede informarnos el estado de la aplicación.
- Plural NotFoundException sólo en los teléfonos Huawei
- Android emulador geo arreglo no puede establecer la ubicación GPS