Ich bin ein Neuling auf Android. Ich habe Client-Server-basierte Anwendung. Der Server sendet die Update-Benachrichtigungen nach jeder Minute an den Client und auf der Client-Seite erhält meine App diese Updates und zeigt sie mit Toast an. Aber jetzt ist mein Problem immer, wenn meine Client-App in den Hintergrundserver geht, sendet weiterhin die Update-Benachrichtigungen und mein Client zeigt es an, als ob die Anwendung im Vordergrund ist. Ich bekomme nicht, wie man überprüft, dass Anwendung im Hintergrund läuft.Android: Wie überprüft man, ob die Anwendung im Hintergrund läuft
Antwort
http://developer.android.com/guide/topics/fundamentals.html#lcycles ist eine Beschreibung des Lebenszyklus einer Android-Anwendung.
Die Methode onPause() wird aufgerufen, wenn die Aktivität in den Hintergrund tritt. Sie können also die Update-Benachrichtigungen in dieser Methode deaktivieren.
Sie können getRunningAppProcesses() in ActivityManager verwenden.
-Update finden Sie diese zuerst:
Checking if an Android application is running in the background
Um zu überprüfen, ob Ihre Anwendung in den Hintergrund gesendet wird, können Sie diesen Code auf onPause()
auf jede Aktivität in Ihrer Anwendung aufrufen können:
/**
* Checks if the application is being sent in the background (i.e behind
* another application's Activity).
*
* @param context the context
* @return <code>true</code> if another application will be above this one.
*/
public static boolean isApplicationSentToBackground(final Context context) {
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
ComponentName topActivity = tasks.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
return true;
}
}
return false;
}
Damit dies funktioniert, sollten Sie dies in Ihreaufnehmen
<uses-permission android:name="android.permission.GET_TASKS" />
ich habe keine worte ........... toll !!!! – GOLDEE
Hallo @peceps Ich möchte Sie informieren, dass mit Android 4.4 (oder N5) diese Methode nicht richtig funktioniert. topActivity und Kontext-Pakete sind gleich ... Können Sie bitte Ihre Antwort aktualisieren? – StErMi
@StErMi http://stackoverflow.com/questions/3667022/android-is-application-running-in-background – Raheel
Nur für API-Ebene 14 und über
Sie ComponentCallbacks2 zu einem activity
, service
verwenden können usw.
Beispiel:
public class MainActivity extends AppCompatActivity implements ComponentCallbacks2 {
@Override
public void onConfigurationChanged(final Configuration newConfig) {
}
@Override
public void onLowMemory() {
}
@Override
public void onTrimMemory(final int level) {
if (level == ComponentCallbacks2.TRIM_MEMORY_UI_HIDDEN) {
// app is in background
}
}
}
- 1. Android für Arbeit - Wie überprüft man, ob meine Anwendung im Arbeitsprofil läuft?
- 2. Android: Überprüfen, ob mein Dienst im Hintergrund läuft
- 3. Wie überprüft man, ob sbt im Testkontext?
- 4. Wie identifiziert man, ob die Anwendung im Hintergrund läuft oder nicht?
- 5. Wie überprüft man, ob Kafka Server läuft?
- 6. Wie überprüft man, ob der Bildschirmschoner läuft?
- 7. Wie überprüft man, ob ein Android-Thread läuft
- 8. Android-Anwendung im Hintergrund ausgeführt?
- 9. WPF-Anwendung läuft noch im Hintergrund nach
- 10. Bedeutung von "Anwendung läuft nicht im Hintergrund"
- 11. ANDROID - wie überprüft man, ob die Animation läuft, bevor man eine neue Animation startet
- 12. Wie überprüft man, ob Outlook läuft, mit vbscript
- 13. Wie finde ich heraus, ob App im Hintergrund läuft oder Android getötet wurde?
- 14. Wie überprüft man, ob localhost
- 15. Wie überprüft man, ob die Verbindung zum Server im Android verloren ist?
- 16. Wie überprüft man, ob die Qt GUI-Anwendung bereits läuft (unter Linux)?
- 17. Wie überprüft man, welche Datei wget heruntergeladen wird, während das Skript im Hintergrund läuft?
- 18. Android: Wie überprüft man, ob die Datei ein Bild ist?
- 19. Making Aktivität läuft im Hintergrund
- 20. Wie überprüft man, ob eine beliebige PID mit Node.js läuft?
- 21. Wie überprüft man, ob der Redis-Server läuft
- 22. Wie man überprüft, ob Sellerie/Supervisor mit Python läuft
- 23. Wie überprüft man, ob der Quartz Cron Job läuft?
- 24. Wie überprüft man, ob ein Timer noch läuft oder nicht?
- 25. Powershell - wie überprüft man, ob das Transkript läuft?
- 26. Wie überprüft man, ob Code auf Azure Websites läuft
- 27. Wie überprüft man, ob die Aktivität noch im Stapel ist?
- 28. Screenshot einer App erstellen, die im Hintergrund läuft - Android
- 29. Wie überprüft man, ob die Schnittstelle ist
- 30. Führen Sie die Anwendung im Hintergrund
Dies wird auch Benachrichtigungen deaktivieren nicht gesendet werden, wenn eine andere Aktivität von dieser Aktivität gestartet wird. –
In meinem Projekt habe ich zu viele Aktivitäten, um zu wissen, wie App im Hintergrund ist? –