Есть ли способ получить уведомление, когда пользователь включает в себя устройство?

StackOverflow https://stackoverflow.com/questions/2190126

  •  25-09-2019
  •  | 
  •  

Вопрос

Мне нужно знать, когда пользователь включает в себя свой телефон. Есть ли какие-либо вещания (или аналогичные), которые уведомляют, когда телефон пользователя выключен?

Это было полезно?

Решение

Вы можете использовать ACTION_SHUTDOWN Намерение который трансляция, когда телефон собирается выключить. Документация говорит:

Приложения обычно не надо справиться с этим, поскольку активность переднего плана также будет приостановлена.

Другими словами, если вы отвечаете на все события жизненного цикла для вашей деятельности соответствующим образом, нет необходимости использовать это, если вы действительно не хотите сделать что-то конкретное, связанное с выключением.

То ACTION_SHUTDOWN Намерение было введено в API Уровень 4, другими словами это будет отправлено только на телефоны, работающие на Android 1.6 или позже.

Вы ловите трансляцию с BroadcastReceiver. Отказ Это будет выглядеть что-то подобное:

public class ShutdownReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        //Insert code here
    }

}

Вам также понадобится запись в вашем манифесте, как следующее:

<receiver android:name=".ShutdownReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_SHUTDOWN" />
  </intent-filter>
</receiver>

В зависимости от того, что вы делаете, другой вариант будет использовать ACTION_BOOT_COMPLETED Намерение который отправляется, когда телефон перезапускается.

Другие советы

В дополнение к ACTION_SHUTDOWN, вы должны добавить android.intent.action.QUICKBOOT_POWEROFF к вашему намечению-фильтру.
ACTION_SHUTDOWN Не всегда транслируется на некоторых устройствах HTC (например, EVO 4G).
Быть более конкретным, если вы выберете перезапуск, ACTION_SHUTDOWN трансляция, но если вы выбираете выключение отключения, QUICKBOOT_POWEROFF вещается вместо этого.

Чтобы расширить, на каком Dave WebB сказал, является подходящим способом обработки этого:

Вы можете переопределить функции жизненного цикла Android Activity:

protected void onPause();
protected void onResume();

В большинстве сценариев, реализующих их, должно быть достаточно и не потребует от вас специально обрабатывать события «Power Off».

Больше информации о Сайт Android и в ответ на Этот жизненный цикл вопрос.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top