Android - mit Hintergrunddienst
-
06-07-2019 - |
Frage
Ich habe einen Mix-Fall IDL-Service, die ich auf 2 Arten verwendet:
- Der Dienst wird einen Thread erzeugen und ein Netzwerk Anruf einige XML-Inhalte Aktivität im Namen zu greifen. Der Inhalt ist auf die Aktivität durch Kunden IDL, die definiert Methoden Rückruf wieder zurück
- Wenn der Benutzer wählt Benachrichtigungsoption dann Dienst erstellt einen Timer, der wiederholt ausgeführt wird und erstellt eine Symbolleiste Benachrichtigung. Es gecached auch den Inhalt so, wenn Aktivität Anforderung ein Update aus dem Cache bedient wird und nicht ein anderes Netz Anruf
Also meine Fragen sind
- Für Szenario # 1, was der Preis ist (falls vorhanden) Ich zahle für für Netzwerk-Service-Anrufe stattdessen Hintergrund-Thread direkt in der Aktivität zu schaffen?
- Für # 2 - bin ich besser dran zu ändern Implementierung Alarmmanager? Ich habe bemerkt, dass, wenn ich Prozesse töten mit Taskiller meines Dienst stirbt und zum ersten Mal eingestellt wird, würde Alarmmanager-base Job bessere Chance auf Erholung? Hat
Lösung
Für Szenario # 1, was der Preis ist (wenn vorhanden) Ich zahle für die Verwendung von Service für Netzwerk fordert statt der Schaffung Hintergrund-Thread direkt in der Aktivität
Ich gehe davon aus, dass, da Sie sagt, dies ein „IDL Service“ ist, dass das ist, was ich einen Remote-Service anrufen -. Sie AIDL werden über eine Schnittstelle zu definieren, die über Prozessgrenzen hinweg verwendet wird
In diesem Fall sind die Kosten mehr MB RAM für den zweiten Prozess, plus ein wenig CPU-Zeit für die Overhead-IPC. Wie viel, dass „wenig CPU-Zeit“ ist, hängt davon ab, wie oft sie aufgerufen wird.
# 2 - bin ich besser dran zu ändern Umsetzung Alarmmanager?
Im Allgemeinen ja. Idealerweise sind Dienste im Speicher so wenig wie möglich.
NeinIch habe bemerkt, dass, wenn ich töten Prozesse mit Taskiller meinen Dienst stirbt und zum ersten Mal eingestellt wird, würde Alarmmanager-base Job besser Chance auf Heilung?
, weil „Task Killer“ Anwendungen sind in der Regel eine API missbrauchen (in Dianne Hackborn Worten), die alles töten, einschließlich geplante Alarme. Derzeit gibt es keine zuverlässige und effiziente Verteidigung gegen „Aufgabe Killer“, die ich mir bewusst bin.