Ich weiß, wir können Services
und IntentServices
verwenden, aber ich habe die Anforderung, dass eine Klasse läuft und nie entfernt wird, aber Garbage Collector.
Um mehr von dem Grund zu beschreiben: Ich benutze ein Ereignissystem.
Wenn also eine Aktivität oder ein Service ein Ereignis auslöst, fängt die zentrale Ereignisklasse dieses Ereignis ab und macht alles Notwendige.
Wie kann ich eine Klasse erstellen, um diese Aufgabe zu erfüllen? Ich kenne die Klasse, die Application
erweitert und zu manifest ist ein Weg hinzugefügt.
Aber ich suche nach einem besseren Weg.Android Halten Sie einen Prozess im Hintergrund laufen
Antwort
Aber ich habe Anforderung, dass eine Klasse läuft und niemals entfernt wird, sondern Garbage Collector.
Wenn Sie allgemein nach "Klasse" fragen, können Sie eine static
Variable verwenden. Es wird niemals Müll gesammelt, es sei denn, Sie weisen ihm null
zu, da ein Klassenobjekt einen starken Verweis darauf enthält.
Wenn also eine Aktivität oder ein Service ein Ereignis auslöst, fängt die zentrale Ereignisklasse dieses Ereignis ab und führt alle erforderlichen Aktionen aus.
Verwenden Sie hierfür eine Komponente BroadcastReceiver
. Es wurde genau für diesen Zweck entworfen.
Ich sehe nicht, wie Ihre erste Frage mit der zweiten Frage verwandt ist. Ich nehme an, Sie möchten, dass Ihr Empfänger immer mit Ereignissen umgeht. Registrieren Sie es in diesem Fall einfach unter AndroidManifest.xml
, damit es jedes Mal ausgeführt wird, wenn ein Ereignis eintritt.
Ich benutze EventBus bereits, keine Notwendigkeit für "BroadCastReceiver". Meine Frage ist: Wenn ich eine Klasse mit dem Namen '' EventHandler'' erstelle und eine statische Variable zu einer Klasse hinzufüge, die '' Application'' erweitert, wird diese Klasse niemals als Garbage Collection behandelt. – Mehrdad
Korrigieren. Es wird nur dann Müll gesammelt, wenn der App-Prozess vollständig beendet ist. –
tnx, die genaue Antwort suche ich. – Mehrdad
- 1. halten Anwendung im Hintergrund laufen
- 2. Unity Android im Hintergrund laufen
- 3. Führen Sie einen ffmpeg-Prozess im Hintergrund
- 4. ngrok im Hintergrund laufen
- 5. Shell - Prozess getrennt durch im Hintergrund laufen und STDIN/OUT?
- 6. WebView Android APP im Hintergrund laufen
- 7. Run Prozess im Hintergrund in Android
- 8. Halten Sie einen UIViewController im Hintergrund die ganze Zeit aktiv
- 9. Starten Sie einen Prozess im Hintergrund in Linux mit C
- 10. Führen Sie einen Sellerie Arbeiter im Hintergrund
- 11. Prozess im Hintergrund worker Fehler
- 12. So halten Sie den Dienst im Hintergrund an
- 13. Android PopupWindow: Weißer Hintergrund, aber Schatten halten?
- 14. Hintergrund Prozess in GAE
- 15. Android: Dienst am Laufen halten, wenn app getötet
- 16. Meine Anwendung abstürzt Während im Hintergrund laufen
- 17. App kontinuierlich im Hintergrund laufen zu lassen
- 18. Android: blauen Hintergrund nach ListView Auswahl halten
- 19. Einen Dienst im Hintergrund für immer ausführen ..? Android
- 20. Halten Sie statische Variablen für einen längeren Zeitraum - Android
- 21. Android Cache-Hintergrund-Prozess steigt kontinuierlich
- 22. Hintergrund erzeugten Prozess in
- 23. Android: Halten Sie einen Thread laufen, auch wenn das Gerät gesperrt ist
- 24. haben Python-Prozess ähnlich ausgeführt, wie Redis-Prozess (im Hintergrund)
- 25. Android Kamera im Hintergrund
- 26. Erstellen Hintergrund Android-Prozess mit HTML5 API
- 27. PHP Hintergrund Prozess
- 28. Rails Hintergrund Prozess/Datenstruktur
- 29. Android: PHP im Hintergrund Thread
- 30. Run Android phonegap Anwendung im Hintergrund
Implementieren Sie einen 'BroadCastReceiver', um diese Aufgabe auszuführen. –
Danke für Downvotes für legitime Fragen, ernsthaft. – Mehrdad