2010-09-07 5 views
3

J'ai deux activités. A et B. A commence B. Les deux sont en cours d'exécution dans l'écran et les deux sont visibles. Dites maintenant B est visible.Problème en instance unique d'une activité dans android

Sur une touche spéciale, je souhaite mettre le A en face avant et le rendre actif. Le problème auquel je suis confronté est lorsque la touche spéciale est enfoncée, une autre instance de A est lancée et la nouvelle instance est amenée à l'avant.

Mais je veux que l'original A arrive au premier plan. Je souhaite effectuer ce changement dans la couche de structure plutôt que dans l'application en utilisant le thème singleInstance dans le fichier launchMode du fichier AndroidManifest.

S'il vous plaît aidez-moi à cet égard car c'est vraiment urgent pour moi. Toutes les entrées seront vraiment précieuses pour moi. Pourquoi ne voulez-vous pas utiliser le plus manfiest pour y arriver?

+0

Sons comme onglets http://developer.android.com/resources/tutorials/views/hello-tabwidget.html – Blundell

+0

Oh c'est une question de ROM – Blundell

Répondre

0

Si des modifications dans le manifeste étaient possibles à partir du code, l'application serait en mesure de modifier ses autorisations après l'installation, ce qui n'a aucun sens.

+0

Le changement que je veux faire devrait être visible pour toutes les applications et Je dois donc changer le cadre, de sorte que chaque fois que la touche spéciale est enfoncée, l'activité à l'arrière devrait arriver à l'avant sans lancer une nouvelle instance. –

+0

@Revathi K J: oh, donc vous faites une rom personnalisée. Essayez de voir où android analyse le xml et le hardcode de l'indicateur 'singleInstance'. – Macarse

1

De-documentation Android de Google:

Définition des modes de lancement

modes de lancement vous permettent de définir comment une nouvelle instance d'une activité est associée à la tâche en cours. Vous pouvez définir différents modes de lancement en deux façons: Utilisation du fichier manifeste

Lorsque vous déclarez une activité dans votre fichier manifeste, vous pouvez indiquer comment l'activité doit associer à des tâches au démarrage. En utilisant des drapeaux d'intention

Lorsque vous appelez startActivity(), vous pouvez inclure un drapeau dans l'intention que déclare comment (ou si) la nouvelle activité devrait associer à la tâche en cours .

Vous pouvez commencer votre activité A de l'activité B en utilisant une intention et passer le drapeau FLAG_ACTIVITY_SINGLE_TOP.