App killed when starting a foreground activity on some devices

Aberta
#1,605 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
30/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
android
Domínio
mobile

Direção de pesquisa

Comece com a demo de câmera do NativeScript e reproduza o ciclo de vida em um Huawei Mediapad T5 afetado. Rastreie os eventos activityDestroyed e de saída do NativeScript ao iniciar a câmera ou o Android PrintManager e compare o resultado com o comportamento esperado de que a atividade do NativeScript continue utilizável após iniciar uma atividade em primeiro plano.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
C++
Estrelas
563
Forks
144
Merge médio
10h 46min
PRs com merge (30d)
14

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de NativeScript/android

Todas as issues de NativeScript/android

Issues semelhantes

Mais issues de C++

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.