Aller au contenu

Restauré une activité en background


zippeurfou

Recommended Posts

Salut les gas,

Bon comme d'hab je vous pause une question.. On sait jamais :D.

Donc voila le topo: j'ai un service qui a un moment donné X doit créer une notification.

Quand je click sur cette notification, elle doit lancer une application qui tourne en background pour la restoré en foreground.

Ex:

Je joue a doodle jump.

J'appui sur home (doodle jump passe en background).

Je lance mon application.

Un evenement special arrive sur mon application et je dois notifier l'usager.

Une notification arrive a l'ecran de l'usager.

Je click sur la notification.

Doodle jump revien à l'etat exact auquel il été au moment de la pause. (Meme action que de faire un long click sur home et de reclicker sur l'icone de doodle jump).

Mon probleme vient du fait que je peux trouver les applica[color=red]tion[/color] qui tourne en background via:

ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

List l = am.getRunningAppProcesses();

Mais je ne trouve pas moyen de savoir l'activité qui tourne dans doodle jump avant d'appuyer sur home. Du coup je suis un peu bloquer pour faire:

Intent intent= new Intent(x,y);

De plus lorsque je declare le flag de mon intent a:

Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT

Cela ne change rien, une nouvelle instance de l'activitée est lancée.

Toute aide serait bienvenu :).

Lien vers le commentaire
Partager sur d’autres sites

Salut,

J'ai trouver une solution. Je ne sais pas si c'est optimal mais cela marche:

Note: ce qui est en commentaire marche aussi donc c'est au choix du dev.

Intent intent=new Intent(Intent.ACTION_MAIN);

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);

intent.addCategory(Intent.CATEGORY_LAUNCHER);

intent.setClassName("com.ferradm.dCF_Client_UDP_HeartBeat_Example.edu", "com.ferradm.dCF_Client_UDP_HeartBeat_Example.edu.DCF_Client_UDP_HeartBeat_Example");

startActivity(intent);

PackageManager pk= getPackageManager();

// intent.setComponent(new ComponentName(pk.queryIntentActivities(intent, 0).get(84).activityInfo.packageName,pk.queryIntentActivities(intent, 0).get(84).activityInfo.name));

startActivityForResult(intent, 100);

//hard coded for the sample but easy to find the good number

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...