Wie verhindere ich, dass Apps im Schlaf getötet werden?

11

Ich habe einen Droid 2. Ich habe ein langes, ressourcenintensives Spiel (Spektralseelen), das ich laufen lassen möchte, während ich mein Telefon nicht benutze. Wenn ich auf die Android-Schaltfläche "Home" drücke, um zum Startbildschirm zurückzukehren und das Spiel sofort neu zu starten, ist es genau dort, wo ich aufgehört habe. Das Gleiche gilt, wenn ich den Ein- / Ausschalter drücke, um zu schlafen, und dann sofort das Telefon einschalte, entsperre und das Spiel neu starte.

Wenn ich es für einige Zeit (einige Stunden) stehen lasse, beginnt es neu, wenn ich zurückkomme und das Spiel starte, als würde es nie laufen. Das Telefon wurde in der Zwischenzeit für nichts verwendet, obwohl die Synchronisierung aktiviert ist.

Meine Frage ist zweifach: Wie kann ich mehr Informationen darüber erhalten, welche Apps wann und warum getötet werden, und wie kann ich sie so einrichten, dass diese App weiter ausgeführt werden kann? Ich brauche es nicht, um etwas im Hintergrund zu tun, ich möchte nur, dass es immer noch da ist, wenn ich zurückkomme.

Ich bin mit dem Konzept vertraut, dass Android den Speicher löscht, wenn er benötigt wird und keinen Taskkiller benötigt, aber ich möchte, dass diese Aufgabe nicht beendet wird, es sei denn, ich beende sie wirklich.

Jason Viers
quelle
Ich nehme an, Sie haben keinen Zugriff auf den eigentlichen Code?
Nanne
Richtig, dies sind Closed-Source-Apps, die im App Store gekauft wurden.
Jason Viers

Antworten:

2

Ich bin mir ziemlich sicher, dass dies keine Option im Standarddesign von Android ist. Ich habe noch nie persönlich eine App für solche Dinge gesehen, weil die meisten Leute wünschen, dass die Programme heruntergefahren werden, um die Geschwindigkeit des Telefons aufrechtzuerhalten. Es ist das Android-System, das nicht verwendete Programme herunterfährt. Der Ersteller der App müsste einen Dienst entwerfen, um ihn im Hintergrund laufen zu lassen oder möglich zu sein, wie ein ständig laufender Computer oder Audio, damit das System denkt, dass das Programm etwas tut. Das würde deine Batterie auffressen.

Nikolaus
quelle
Während Ihr erster und dritter Satz absolut korrekt sind, sind es die anderen nicht.
Michael
2

Vorschlag: Verwenden Sie Tasker , um das Bildschirmzeitlimit für Ihre App zu deaktivieren. Dies kann verhindern, dass es in den Hintergrund tritt.

geil
quelle
Ich werde einen Blick darauf werfen und es ausprobieren, danke! Ich werde jeden Erfolg oder Misserfolg zur Kenntnis nehmen.
Jason Viers
Ich kann bestätigen, dass das Ändern des Bildschirm-Timeouts in Tasker NICHT verhindert, dass die App getötet wird. Vielen Dank für den Vorschlag.
Jason Viers
1
Warten Sie, verhindert dies nicht das Ausschalten des Bildschirms? Also Batterie verschwenden?
Michael
2

Zum ersten Teil Ihrer Frage;

Wie kann ich weitere Informationen darüber erhalten, welche Apps wann und warum getötet werden?

Das Android SDK enthält eine kurze Zusammenfassung des Android-Speichers http://developer.android.com/guide/topics/fundamentals.html

Standardmäßig wird jede Anwendung in einem eigenen Linux-Prozess ausgeführt. Android startet den Prozess, wenn eine der Komponenten der Anwendung ausgeführt werden muss, und beendet den Prozess dann, wenn er nicht mehr benötigt wird oder wenn das System Speicher für andere Anwendungen wiederherstellen muss.

So effektiv kann Android als Killing-Programm zusammengefasst werden, wenn festgestellt wird, dass Sie es nicht verwenden (ich habe in der App auf Beenden geklickt) oder wenn die Ressourcen knapp werden. Wenn Sie beispielsweise 512 MB RAM und 10 MB frei haben und eine App starten, die 12 benötigt, wird versucht, die am wenigsten verwendete App zu ermitteln, von der 12 abgerufen werden können.

Es macht das ziemlich gut (zumindest nach meiner Erfahrung). Möglicherweise können Sie von Ihrem Spiel nach Hause gehen und ein paar Dinge tun, aber beim dritten wird das Spiel entfernt. Denken Sie daran, wie ressourcenintensiv Spiele insbesondere sind, daher ist es wahrscheinlich, dass diese App eher früher als später beendet wird.

Der Grund, warum es nach einiger Zeit verschwindet, ist, dass Sie wahrscheinlich Synchronisierungsprozesse haben, die versuchen, Ressourcen zu starten und um sie zu konkurrieren. Die Speicherseiten der Apps wurden zu diesem Zeitpunkt nur sehr selten aufgerufen, daher ist es ein faires Spiel für jede Speicherwiederherstellung, die das Betriebssystem für notwendig hält.

Auf deine zweite Frage;

Wie kann ich es einrichten, damit diese App weiter ausgeführt werden kann?

Ich benutze keinen Taskkiller, aber ich bin mir ziemlich sicher, dass die guten (anscheinend ist ATK der Anführer https://market.android.com/details?id=com.rechild.advancedtaskkiller&feature=search_result ) eine Ausnahme haben aufführen. Möglicherweise können Sie das gewünschte Spiel auf die Whitelist setzen und die anderen Prozesse auf die schwarze Liste setzen.

Ich bin auch nicht mit diesem Spiel vertraut, daher bin ich mir nicht sicher, welche automatischen Speicherfähigkeiten und solche dies hat. Hoffe ich war etwas Hilfe.

krondor
quelle
1

Wie erhalte ich weitere Informationen darüber, welche Apps getötet werden und warum?

Sie können Ihr Telefon mit adb verbinden . und dann logcat einschalten ; Ausgabe in Datei speichern.
In der Protokolldatei finden Sie unzählige Informationen. indem Sie nach Ihrem App-Namen suchen; Sie können herausfinden, wann es getötet wird.

Was können Sie tun, um zu verhindern, dass es vom Android-System gestoppt wird?
Ich weiß es nicht; hoffentlich funktioniert rAndy Antwort.
Jedoch; Ich würde den Entwickler kontaktieren und ihm das Problem mitteilen, da er / sie die einfachste Zeit haben sollte, es zu beheben

bbaja42
quelle
Ich wollte gerade die Logcat-Lösung erwähnen. Ich möchte nur hinzufügen, dass Sie auch nach dem ActivityManager suchen müssen (es ist Androids interner "Task Killer"). Sie können Android nicht daran hindern, die App zu töten. Die Android-Idee ist, dass die App in der Lage sein sollte, ihren vorherigen Status wiederherzustellen , wenn ein App-Prozess vollständig beendet wird. Die App-Entwickler müssen also sicherstellen, dass Sie das Spiel nicht von vorne beginnen.
Flow