2011-01-13 3 views
0

Diese Frage klingt so einfach Ich kann nicht glauben, dass ich keine Informationen darüber finden kann (vielleicht habe ich die falschen Stichworte im Kopf ...)Android: Ändern Sie die Verzögerung, bevor das Telefon eingeschläfert wird, während meine App läuft

Ich suche nach einer Möglichkeit, die Verzögerung zu ändern, bevor das Telefon in den Ruhezustand versetzt wird, wenn meine App ausgeführt wird.

Ich benutzte Wake-Locks bis jetzt, um zu verhindern, dass meine App zu häufig geschlossen wird (ihre und opengl App und die Ladezeit ist ein Killer speziell auf langsamen Telefonen). Ich mag die Idee nicht, das Telefon auf unbestimmte Zeit zu verlassen (hauptsächlich, weil es den Akku schnell leert, um eine volle OpenGL-App laufen zu lassen).

Gibt es eine Möglichkeit, die Verzögerung vor dem Einschlafen des Telefons auf 2 ~ 3min zu ändern?

ich auch hinzufügen möchte, dass ich möchte nicht die Einstellungen des Telefons ändern (das ist nur der Benutzer Entscheidung)

Jason

bearbeitet den Begriff „Anwendung schlafen gehen“ zu korrigieren was als inkorrekt herausgestellt wurde.

+0

Dies kann der Benutzer entscheiden (in den Systemeinstellungen). Wenn überhaupt, können Sie erwägen, die Wecksperre nach n Minuten zu entfernen, aber sind Sie sicher, dass Sie die Benutzereinstellungen überschreiben möchten? – EboMike

+0

Nein, meine Meinung, ich sollte nicht mal Zeit damit verschwenden, leider hat mein Chef dies lange auf die Todo Liste gesetzt (und ich kann es nicht ignorieren lol) –

+0

Ihre Frage nicht Sinn machen. Eine App wird nie "eingeschläfert". Das Telefon könnte schlafen gehen. Eine Aktivität kann pausiert und in den Hintergrund gestellt werden, wenn der Benutzer eine andere Aktivität öffnet. Wenn sich die Aktivität im Hintergrund befindet, entscheidet sich das Android-Betriebssystem möglicherweise dafür, es zu beenden, wenn es Ressourcen benötigt, aber Sie können nichts dagegen tun. Was versuchst du zu erreichen? –

Antwort

2

Erstellen Sie ein Timer Objekt und release() Ihre Wecksperre in der Timer-Aufgabe. Ich bin ziemlich sicher, dass Sie eine Sperre in einem Worker-Thread freigeben können, aber im schlimmsten Fall müssen Sie runOnUiThread verwenden, wenn ich falsch bin.

Achten Sie darauf, den Fall zu behandeln, wenn onPause() aufgerufen wird und in diesem Fall den Timer abbrechen und die Sperre sofort aufheben.

Im Allgemeinen bin ich kein Fan von Wake Locks, aber wenn dies Ihren Chef glücklich machen soll, wake-lock weg.

EDIT: Btw, die Systemeinstellung für die UI-Timeout ist zugänglich durch Apps: SCREEN_OFF_TIMEOUT in android.provider.Settings.System. Aber wirklich, dies ist nur für private Anwendungen, öffentliche Anwendungen haben keinen Einfluss auf diesen Wert.

+0

Es scheint wie der Timer sollte jedes Mal zurückgesetzt werden Der Benutzer interagiert jedoch mit dem Bildschirm. Wenn Sie dies tun, sollten Sie dem Benutzer eine Möglichkeit bieten, die Zeitdauer zu konfigurieren oder den Wakelock vollständig auszuschalten. –

+0

Ja, ich überlasse Jason die feineren Details. Das ist nur das erste, was mir in den Sinn kam. Ich denke immer noch, dass es ein schrecklicher UI-Hack ist (Android hat eine Systemeinstellung dafür!), Aber nach dem Klang ist dies für eine private Anwendung, damit sie alles hacken können, was sie wollen. – EboMike

Verwandte Themen