Frage

Ich habe einen Mix-Fall IDL-Service, die ich auf 2 Arten verwendet:

  1. 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
  2. definiert Methoden Rückruf wieder zurück
  3. 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

  1. 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?
  2. 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
War es hilfreich?

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.

  

Ich 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?

Nein

, 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.

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