Есть ли способ получить уведомление, когда пользователь включает в себя устройство?
-
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 и в ответ на Этот жизненный цикл вопрос.