Question

J'ai un widget qui peut apparaître de petites boîtes de dialogue lorsque vous cliquez dessus. Ces dialogues sont affichés par une activité appelée RemoteActivity dans SingleInstance launchMode. Dans l'une de ces boîtes de dialogue, il y a un bouton pour lancer l'application principale MainActivity, qui a launchMode standard.

Cependant, lorsque ce bouton est cliqué, et startActivity () appelée, MainActivity ne démarre pas, bien que je puisse voir le correspondant. « Début de l'activité: intention {...} » dans logcat

Si je mets le launchMode de RemoteActivity à MainActivity norme puis se lance, mais ce n'est pas ce que je veux, RemoteActivity est simplement une extension du widget, je ne veux pas à pile avec une autre activité.

J'ai aussi essayé avec FLAG_ACTIVITY_NEW_TASK mais il n'a pas aidé, et il ne devrait pas être de toute façon nécessaire d'après les documents de:

activité

A "SingleInstance", sur la D'autre part, permet d'autre activités à faire partie de sa tâche. Il est la seule activité dans la tâche. Si il commence une autre activité, que l'activité est affectée à une autre tâche - comme si FLAG_ACTIVITY_NEW_TASK était dans l'intention.

Comment puis-je lancer mon activité principale?

Mise à jour / errata:

Le MainActivity est effectivement lancé, mais seulement si elle est pas déjà partie d'une tâche. Si je lance MainActivity normalement à travers le lanceur, puis appuyez sur Retour pour quitter, puis RemoteActivity fait MainActivity de lancement.

Mais si, au lieu d'appuyer sur Retour, je presse Accueil de quitter MainActivity, alors RemoteActivity ne peut pas lancer MainActivity, bien que semble avoir l'intention de logcat.

Je teste cela sur Froyo.

Toute idée de ce qui se passe?

Était-ce utile?

La solution 2

I found the problem: this behavior only occurs when calling finish() before startActivity() in RemoteActivity. If I call startActivity() before finish() then it works fine whether MainActivity is already part of an existing task or not.

Go figure...

Autres conseils

Maybe the noHistory flag will work for what you are looking for?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top