173 votes

activité de démarrage Android du service

Android :

J’ai lancé ce service de``

En `` Si condition satisfait début

de mon mentionné ci-dessus ne pourrait pas lancer , comment puis-je le contexte d’exécution actuelle `` dans la classe de service ?

380voto

Faisal khan Points 12697
Intent dialogIntent = new Intent(getBaseContext(), myActivity.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(dialogIntent);

20voto

Andy Points 844

J’ai eu le même problème et tiens à vous faire savoir que rien de ce qui précède a fonctionné pour moi. Ce qui a fonctionné pour moi a été :

et dans un mon sous-classes, stocké dans un fichier séparé, j’ai dû :

Toutes les autres réponses m’a donné une `` .

10voto

kellogs Points 1220

Une autre chose à noter: alors que la réponse ci-dessus fonctionne très bien lorsque notre tâche est dans le fond, la seule façon que je pouvais le faire fonctionner si notre tâche (service + certaines activités) a été à l'avant-plan (c'est à dire l'une de nos activités visible pour l'utilisateur) était comme ça:

    Intent intent = new Intent(storedActivity, MyActivity.class);
    intent.setAction(Intent.ACTION_VIEW);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    storedActivity.startActivity(intent);

Je ne sais pas si ACTION_VIEW ou FLAG_ACTIVITY_NEW_TASK sont de toute utilisation réelle ici. La clé du succès a été

storedActivity.startActivity(intent);

et bien sûr FLAG_ACTIVITY_REORDER_TO_FRONT pour ne pas l'instanciation de la reprise de l'activité. Bonne chance!

0voto

james Points 20

Tour à tour,

Vous pouvez utiliser votre propre classe d’Application et appeler de partout où vos besoins (surtout non-activités).

Et inscrivez votre classe d’Application :

Ensuite, appelez :

0voto

GMG Points 85

Si vous avez besoin pour tout une activité qui se trouve dans bacgrounde, de votre service, je propose le lien suivant. Intent.FLAG_ACTIVITY_NEW_TASK n’est pas la solution.

http://StackOverflow.com/a/8759867/1127429

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X