2012-04-04 3 views
2

Ich habe eine VOIP-basierte App, die 24/7 ausgeführt werden muss. Aber System ist meine Anwendung zu töten, wenn meine Anwendung ist Hintergrund ..Android: Wie zu vermeiden, dass Aktivität vom System getötet wird, ActivityManager: Prozess mein Paketname (pid 935) ist gestorben


1) Woher weiß ich, wenn System meine Anwendung tötet.?
2) Kann ich einen Anwendungsparameter einstellen, damit das System meine Anwendung nicht beendet?
3) Ich weiß, wie die Anwendung neu gespeichert wird, wenn Benutzer auf die App klickt, aber wenn System meine App um 15:00 Uhr killt und wenn Daten um 15:30 Uhr empfangen werden, wird meine App nie vom System gekillt.
4) Die Bereitstellung von Service Based Design für meine App wird Ihnen helfen?


Wie komme ich hierher. Ich möchte meine App läuft alle Zeit und hört Daten von Server.


Ihre Kommentare werden mir sehr gefallen.


Dank

Antwort

1

Wie ist Ihre Anwendung entworfen? Läuft der 24 * 7-Prozess als Dienst im Hintergrund? Wenn nicht, würde ich vorschlagen, es zu einem Dienst zu machen, da auf diese Weise Android nur den Tod herbeiführen würde, falls der Telefonspeicher zu niedrig wird (was heutzutage selten ist, mit viel verfügbarem Speicher). Wenn Sie nach bestimmten Broadcasts suchen können, die empfangen werden sollen (abhängig davon, was Sie versuchen), können Sie einen Broadcast-Empfänger einrichten und dann den Dienst auf Broadcast-Empfang aufrufen, andernfalls den Dienst ebenfalls beenden. Auf diese Weise wird auch der Dienst nicht ständig ausgeführt. Also hängt alles davon ab, was ist Ihre Anforderung ..

+0

Markieren Sie die Antwort als nützlich, wenn Sie es wirklich so finden :) –

+0

Ich habe einen lokalen Service ausgeführt Wird das tun? – NitZRobotKoder

+0

Können Sie näher erläutern, was Sie mit dem lokalen Service meinen? Ich würde diesen Ansatz vorschlagen. Broadcast-Empfänger empfängt Broadcast von einer externen Entität, löst den Dienst der Reihe nach aus, der seine Aktion ausführt und sich dann entweder selbst aufhört/weiterläuft, wenn Sie dies tun MÜSSEN. Beachten Sie jedoch, dass abhängig von der Task innerhalb des Dienstes und Halten in wirklich laufenden 24 * 7 würde auch Telefonbatterie verbrauchen. –

0

Sie haben Ihre eigene Frage beantwortet. Ja, Sie müssen anstelle einer Aktivität einen Dienst einrichten, der nicht vom Betriebssystem gelöscht wird.

+0

Ich habe einen lokalen Service ausgeführt Wird das tun? – NitZRobotKoder

Verwandte Themen