È possibile distinguere le applicazioni per il polling per la parte superiore di attività:
private String lastPackageName;
ActivityManager am = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
// get the info from the currently running task
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
Log.d("topActivity", "CURRENT Activity ::"
+ taskInfo.get(0).topActivity.getClassName());
ComponentName componentInfo = taskInfo.get(0).topActivity;
String packageName = componentInfo.getPackageName();
if(lastPackageName != packageName){
//Probably application changed
}
lastPackageName = packageName;
ma sarà a voi come spesso si sondaggio per le informazioni .. Si potrebbe provare polling per queste informazioni ogni volta che l'utente preme indietro , i pulsanti home o le presse sullo schermo .. Ma ovviamente sarà una tecnica di polling troppo e troppo male.
sembra che questo argomento è stato chiesto già prima senza e non ho ricevuto risposta sufficiente: How to be notified when foreground (top) activity (application) changes
Fonte: https://stackoverflow.com/a/4753333/1276374
fonte
2013-07-02 12:52:11
si dovrebbe aprire questa domanda per taglie. La mia risposta non è chiaramente una risposta degna di essere accettata, sono curioso anche su possibili soluzioni –