Dans mon application, j'ai 2 activités de liste qui peuvent démarrer l'une ou l'autre en cliquant sur leurs articles.Dilemna: empêche StackOverflowException ou améliore l'expérience utilisateur?
|--Activity1--| |--Activity2--| |--Activity1--|
| item11 | ->click-> | item21 | | item21 | ->click-> ...
| item12 | | item22 | ->click-> | item12 |
| item13 | | item23 | | item13 |
|-------------| |-------------| |-------------|
Donc, si l'utilisateur clique trop, il peut remplir toute la pile et le système lancera une StackOverFlowException
non?
La solution que j'ai choisie était de marquer ces 2 activités avec noHistory="true"
, mais maintenant je regrette que l'utilisateur ne puisse pas naviguer entre ces 2 activités avec le bouton de retour.
Quelqu'un peut-il m'aider à trouver une meilleure alternative?
Merci à l'avance
EDIT: pour être plus complet, nous allons expliquer ce qui est de cette activité objectif de workflow:
J'ai une base de données qui stocke une liste de noms liés à une liste des jours dans une année. Un nom peut être lié à plusieurs jours, et la même chose un jour peut être lié à plusieurs noms.
the database schema
| names |---< n, m >---| days |
Donc, ce flux d'activité est une sorte de navigateur de base de données:
Activity1
est leNameListActivity
, il affiche une liste de noms liés à un jour précis.Activity2
est leDateListActivity
, il affiche une liste de jours liés à un nom spécifique.
Lorsque l'utilisateur clique sur un élément (un nom ) du NameListActivity
, le DateListActivity
est démarré avec la liste des jours liés au nom cliqué.
Et même chose, lorsque l'utilisateur clique sur un élément (un jour) du DateListActivity
, le NameListActivity
est démarré avec la liste des noms associés au jour cliqué.
Je pense que vous devriez aller avec la réponse de commonsware. Vous pourriez probablement causer un débordement de pile à moins qu'Android ne nettoie l'historique, mais si cela nécessite des milliers de clics, alors ce n'est pas un problème. –