voici la situation:
Problèmes: Dans la mesure où j'ai cherché, il n'y a aucun moyen de récupérer l'activité en cours au premier plan.
Informaitons supplémentaires: Cela doit pouvoir être traité dans plusieurs activités. Ainsi, il peut être affiché dans l'activité A, B ou C.
Je ne sais pas si c'est ce que vous recherchez, mais cela semblait assez simple. http://iamvijayakumar.blogspot.com/2011/09/get-current-activity-and-package-name.html
ActivityManager am = (ActivityManager) this .getSystemService(ACTIVITY_SERVICE);
List<RunningTaskInfo> taskInfo = am.getRunningTasks(1);
ComponentName componentInfo = taskInfo.get(0).topActivity;
Log.d(WebServiceHelper.TAG, "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName()+" Package Name : "+componentInfo.getPackageName());
J'espère que cela t'aides.
Plan A : prenez votre demande à la lettre
Étape n ° 1: le thread est-il géré par un service?
Étape n ° 2: demandez au service d’envoyer un message lorsque le "pair est déclenché" - LocalBroadcastManager
, Otto de Square, le bus d’événement de greenrobot, etc.
Étape 3: Demandez à chaque activité d'être configurée pour écouter ce message lorsqu'elle est au premier plan.
Étape 4: Demandez à l'activité d'afficher la boîte de dialogue à la réception du message
Plan B : même résultat visuel
Étape n ° 1: le thread est-il géré par un service?
Étape 2: Demandez au service d’appeler startActivity()
de participer à une activité sur le thème du dialogue.
Étape n ° 3: il n'y a pas d'étape n ° 3
Pour ce faire, vous pouvez étendre Activity et Application et disposer de méthodes qui extraient et définissent la référence d’activité actuellement affichée en tant que variable de niveau Application. Essayez cette approche: Comment obtenir le contexte actuel de l’activité de premier plan sous Android? .
Vous pouvez y parvenir en utilisant un récepteur de diffusion personnalisé. Vous pouvez définir un récepteur de diffusion dans votre thread et l'écrire dans différentes activités. Et à partir de votre fil, vous pouvez décider quelle activité envoyer en diffusion.
Dans le récepteur, vous pouvez afficher la boîte de dialogue.