android
android copied to clipboard
App killed when starting a foreground activity on some devices
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.