NativeScript / NativeScript/android

App killed when starting a foreground activity on some devices

Abierto
#1,605 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
C++
Estrellas
563
Forks
144
Merge medio
10 h 46 min
PR fusionados (30 d)
14

Descripción

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

  • CLI: 6.5.0
  • Cross-platform modules: 6.5.1
  • Android Runtime: 6.4.1
  • Plugin(s):
    @nstudio/nativescript-checkbox
    nativescript-bitmap-factory": "^1.8.1",
    nativescript-bluetooth
    nativescript-camera
    nativescript-drawingpad
    nativescript-feedback
    nativescript-fonticon
    nativescript-geolocation
    nativescript-iqkeyboardmanager
    nativescript-localize
    nativescript-modal-datetimepicker
    nativescript-print-zebra
    nativescript-printer
    nativescript-sqlite
    nativescript-sqlite-commercial
    nativescript-sqlite-encrypted
    nativescript-toasty
    nativescript-zip

Describe the bug
On some devices, at least on Huawei Mediapad T5, when I start a new activity that goes on the foreground, the NativeScript activity gets killed. When I go back, the NS activity restarts.
After some investigation, I concluded that it's a battery management issue. Android always kills app activities put in the background to minimize battery usage, but on some devices (mainly Huawei from what I've found) this mechanism is very aggressive and kills the activity immediately after it goes in the background. The Android activityDestroyed event and NS exit event are not called.

I have two scenarios:

  • Opening the camera with nativescript-camera plugin. The NS activity is killed but the camera still works, allowing me to retrieve the photo uri on restart.
  • Printing with the system service PrintManager. In this case, when the NS activity is killed the print tool closes too. To the user, it looks like a crash.

My goal is to prevent the perceived crash at least on the second scenario. Is there a way to release enough resources when the activity is paused?

Allowing the app to ignore battery optimization and managing manually launch/app launch doesn't solve the issue.

To Reproduce
Launch the nativescript-camera demo on an affected device.

Expected behavior
The NS activity is not killed after it starts a new activity.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con la demo de cámara de NativeScript y reproduce el ciclo de vida en un Huawei Mediapad T5 afectado. Rastrea los eventos activityDestroyed y de salida de NativeScript mientras inicias la cámara o Android PrintManager, y compara el resultado con el comportamiento esperado de que la actividad de NativeScript siga siendo utilizable después de iniciar una actividad en primer plano.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
android
Área
mobile
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
30/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.