6

Wenn die Batterie auf meinem Android-Gerät stirbt Welche Methoden in den Aktivitäts- und Fragmentklassen (falls vorhanden) werden während der "Power-Off" -Stufe des Geräts aufgerufen?Welche Android-Methoden werden aufgerufen, wenn die Batterie ausgeht?

Wenn ein Benutzer gerade einen Bildschirm in meiner App anschaut und er die Ein/Aus-Taste gedrückt hält und Ausschalten auswählt, fallen die Ereignisse, die angerufen/nicht genannt werden, zusammen, wenn der Akku leer ist und sich automatisch abschaltet?

OnPause?

OnStop?

OnDestroy?

OnDetach?

Bonus: Habe ich genug Zeit, um eine kleine Datenmenge auf einem Webserver zu speichern?

Um zu verdeutlichen, dass der Akku des Geräts "vollständig" leer ist, akzeptiert er keine weiteren Eingaben mehr und auf dem Bildschirm erscheint die Meldung "Powering Off". Kurz danach schaltet sich das Gerät aus.

Ich brauche nur genug Zeit, um einen Formularstatus zu speichern, bevor das Telefon ausschaltet, ich habe eine Strategie, um die gespeicherten Daten zu reinigen, sollte das Telefon nicht ausschalten, aber ich möchte so nah wie möglich zum Telefon schalten (mehr als eine Minute ist wirklich sinnlos).

+1

keiner von ihnen. Sie müssen hierfür einen Broadcast-Empfänger verwenden. – Rohit5k2

+1

@ Rohit5k2: "Keine von ihnen" Quelle für diese Bestätigung? (wir sprechen von einer kontrollierten Abschaltung, nicht von einer plötzlichen Batterieentnahme) – njzk2

Antwort

4

onDestroy auf alles wird aufgerufen, wenn die Batterie erreicht 0,5%

EDIT: Es gibt keine festgelegte Zeit, dass Sie irgendetwas in das tun müssen, Abschaltvorgang aufgrund niedriger/leerer Batterie, der von der jeweiligen Telefonbatterie und nicht vom System abhängig ist. Sie haben daher möglicherweise genug Zeit, um Daten auf einem Webserver auf einigen Telefonen, nicht aber auf anderen zu speichern. Experimentell konnte ich nur eine kurze Zeile in eine Datei schreiben, in die ich bereits geschrieben hatte, bevor onDestroy aufgerufen wurde und nichts mehr.

+1

Haben Sie eine Quelle, um diese Bestätigung und diese Nummer zu unterstützen? – njzk2

+2

https://android.googlesource.com/platform/frameworks/base/+/625239a05401bbf18b04d9874cea3f82da7c29a1/services/java/com/android/server/BatteryService.java – John

+0

0,5% ist die Marke zu runden auf 0 im Akku-Handling so shutdownIfNoPower () wird in dem Link aufgerufen, den ich gerade gepostet habe – John

2

Die von Ihnen erwähnten Methoden sind Callbacks für Aktivitätslebenszyklen, von denen keiner aufgerufen wird, wenn die Batterie schwach ist. Sie benötigen einen Rundfunkempfänger für diesen

verwenden Sehen Sie diese How to detect when the Battery's low : Android?

+0

Was ist das letzte Ereignis, das ich erhalten werde, bevor das Gerät abschaltet? und ungefähr, wie viel Zeit hätte ich, bevor das Telefon automatisch herunterfährt? – Smithy

+0

Es würde den Empfänger bei jeder Änderung auslösen. Sie können die Aktion ergreifen, wenn Sie es für richtig halten. – Rohit5k2

Verwandte Themen