[Bug] Android frames are missing from frame stack after backpress and app resume

Ouverte
#11,436 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
66/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Stack technique
android, typescript
Domaine
mobile-dev

Piste de recherche

Commencez par les implémentations de Frame.topmost() et Frame.getFrameById(), puis suivez la gestion de Android backpress décrite dans l’issue. Reproduisez la séquence sur Android 12 ou une version ultérieure avec plusieurs frames et un frame identifié ; le travail est terminé lorsque le frame reste détectable après backpress et la reprise de l’application.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug-pending-triage
Issue Description

In android 12 and later, root launcher activities are no longer finished on Back press.
See https://developer.android.com/about/versions/12/behavior-changes-all#activity-lifecycle

However, {N} core overrides backpress and removes frames from stack, thinking that the activity will finish.
Then, user attempts to launch the app and it will simply resume without recreating views and frames will still be missing from the stack.

That is because the frame stack implementation is very old and did not consider the more recent android 12 behaviour.
The issue affects Frame.topmost() and Frame.getFrameById().

This can be replicated in apps with multiple frame instances as back press makes sure core keeps at least a single frame in the stack.

Reproduction
  1. Launch an app with a frame that has an id in android 12 or later
  2. Log result from Frame.getFrameById(id) which should print the frame view
  3. Press back to close application
  4. Launch app again and it will still be in the last navigated page
  5. Log result from Frame.getFrameById(id) and it will be undefined
Relevant log output (if applicable)

Environment

No response

Please accept these terms
Langage dominant
TypeScript
Étoiles
25.7k
Forks
1.7k
Merge moyen
1 j 5 h
PR mergées (30 j)
35

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de NativeScript/NativeScript

Toutes les issues de NativeScript/NativeScript

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.