Gibt es eine Möglichkeit, einen Dienst (Start oder Stopp) nur auszuführen, wenn eine bestimmte App geöffnet ist? Der Fall ist, dass ich einen "Blasen" Service habe (ähnlich wie Facebook) und ich möchte nur erscheinen, wenn ich das Spiel Minecraft PE öffne. Und wenn ich ändere oder ich eine andere Anwendung öffne, möchte ich unsichtbare Blase setzen. Ist das möglich?Kann ich einen Dienst in Android nur ausführen, wenn ich eine bestimmte App geöffnet habe?
1
A
Antwort
1
Verwenden Sie diesen Code.
public class CheckRunningApplicationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context aContext, Intent anIntent) {
try {
ActivityManager am = (ActivityManager) aContext
.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> alltasks = am
.getRunningTasks(1);
for (ActivityManager.RunningTaskInfo aTask : alltasks) {
if (aTask.topActivity.getClassName().equals("com.android.phone.InCallScreen")
|| aTask.topActivity.getClassName().equals("com.android.contacts.DialtactsActivity"))
{
Toast.makeText(aContext, "Phone Call Screen.", Toast.LENGTH_LONG).show();
}
String packageName = "com.example.checkcurrentrunningapplication";
if (aTask.topActivity.getClassName().equals(
packageName + ".Main"))
{
// When opens this example screen then show a alert message
Toast.makeText(aContext, "Check Current Running Application Example Screen.",
Toast.LENGTH_LONG).show();
}
}
} catch (Throwable t) {
Log.i("THROW", "Throwable caught: "
+ t.getMessage(), t);
}
}
}
Fügen Sie diese in Manifest:
<receiver android:name = ".CheckRunningApplicationReceiver"/>
<uses-permission android:name="android.permission.GET_TASKS" />
Verwandte Themen
- 1. Wie starte ich Dienst-nur Android App
- 2. Wie kann ich Funktionen ausführen, wenn ich nur einen Namen habe?
- 3. Android: Starten Sie meinen Dienst, wenn ich meine App schließe
- 4. Android - Wie kann ich überprüfen, ob meine App geöffnet ist, wenn Sie eine Push-Benachrichtigung erhalten?
- 5. Wie kann ich feststellen, wie viele SQL-Verbindungen ich in einem Windows-Dienst geöffnet habe?
- 6. Ich habe Probleme beim Ausführen meiner App
- 7. Android, sollte ich einen Dienst verwenden oder nur Receiver senden?
- 8. Eine App/einen Dienst im Deep Sleep-Modus ausführen?
- 9. Wie kann ich Ansible verwenden, wenn ich nur Lesezugriff habe?
- 10. Android - muss ich zipAlign ausführen, nachdem ich jarSigner ausgeführt habe?
- 11. Wie starte ich einen Android-Dienst, wenn das System hochfährt?
- 12. Wenn ich App-Erweiterung (Widget) in Gerät ausführen. Ich habe diesen Fehler App-Installation fehlgeschlagen
- 13. Nur ein Makro ausführen, wenn eine E-Mail geöffnet ist
- 14. Wie lade ich eine Datei hoch, nachdem ich sie in einer iOS App geöffnet habe?
- 15. Kann ich eine Android-Aktivität nur beim ersten Öffnen einer Anwendung ausführen lassen?
- 16. Android Studio geöffnet Debug-Modus, wenn app
- 17. Wie kann ich bei Verwendung von ANT nur dann eine Aufgabe definieren, wenn ich eine bestimmte Java-Version habe?
- 18. Wie kann ich eine CLI-Anwendung als Windows-Dienst ausführen?
- 19. Wie starte ich einen Dienst automatisch, nachdem ich eine Landstreicherbox neu gestartet habe?
- 20. Firefox wird nur gedruckt, wenn ich einen Haltepunkt gesetzt habe?
- 21. Wie kann ich eine Klassenmethode in Swift aufrufen, wenn ich nur die Zeichenfolge habe?
- 22. Kann ich eine bestimmte Testgruppe über Maven ausführen?
- 23. Android-Dienst beendet, wenn ich verlassen Anwendung
- 24. Android: App-Verknüpfung - Unterstützung nur bestimmte Pfade?
- 25. Warum habe ich `main.using 'nur auf Toplevel erlaubt, wenn ich eine Refinement in IRB verwendet habe?
- 26. Android-Dienst funktioniert nicht, wenn ich App schließe
- 27. Android - notifyDataSetChanged, wenn ich einen editText bearbeitet habe
- 28. Wenn ich 3 <tr> Elemente habe, wie kann ich nur einen markieren, wenn ich gleichzeitig klicke? - CSS, jQuery
- 29. Wie kann ich eine Windows GUI-Anwendung als Dienst ausführen?
- 30. Wie erhalte ich einen Dienst, wenn ich die Anwendung schließe?
Android Studio mir sagt, dass android.permission.GET_TASKS und getRunningTasks (1) ist veraltet. Ist es möglich, dass aus Sicherheitsgründen nicht auf den Namen der aktuell laufenden Klasse zugegriffen werden kann? Vielen Dank. – DaveKiss
http://stackoverflow.com/questions/31156313/activitymanager-getrumingtasks-is-deprecated-android –