Frage

Ist es irgendwie möglich, auf die Ereignisse des Aktivitätsmanagers zu hören, z. B. wenn Aktivitäten gestartet werden? Sendet der ActivityManager Sendungen? Ich habe nichts gefunden, was darauf hinweist, dass dies der Fall ist.

Was ich im Grunde genommen tun muss: Ich möchte, dass meine App eine meiner Aktivitäten startet, wenn eine bestimmte (Drittanparty) App gestartet/fokussiert wird. Es ist ein Problem, dies muss vor der Tatsache der Drittanparty -App erfolgen.

Was ich bisher versucht habe: Workarounds:

  1. Logcat -Ausgabe: Ich verlange logcat alle 0,8s (gefiltert, um Aktivitätsmanagerereignisse zu zeigen), aber dies frisst bis zu vielen Ressourcen
  2. GetRunnttasks: verlangsamt sich auch sehr und ist nicht sehr sicher, da eine Aktivität möglicherweise ausgeführt wird, aber derzeit nicht im Fokus steht

Irgendwelche Ideen?

War es hilfreich?

Lösung

Ich denke

 (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);

ActivityManager.GetRecentTasks () - Gibt eine Liste der derzeit ausgeführten Aufgaben zurück, wobei die neuesten ersten und älteren nach in der Reihenfolge zuerst und älter sind.

Details überprüfen Dokumente

Vielleicht können Sie, obwohl Android ein Linux ist

Runtime.getRuntime().exec("ps -aux | grep smth")

Aber ich denke, es wäre schwierig, eine bestimmte Java -Anwendung zu erkennen.

Andere Tipps

Ich denke, Sie können den Startmodus verwenden, um zu bestimmen, welche Aktivität auf die Spitzenstufe gestartet werden soll. Bitte überprüfen Sie die Frage: Android Singletask oder SingleInInstance Startmodus?. Vielleicht hilft es dir.

Ich sah in der Android -Quelle an, aber es scheint keine Ereignisse zu geben, die übertragen wurden.

https://android.googlesource.com/platform/packages/providers/applicationsProvider

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top