Ответ 1
Вы можете использовать ACTION_SHUTDOWN
Intent, который транслируется, когда телефон собирается завершить работу. В документации указано:
Приложениям обычно не нужно обращаться с этим, так как операция переднего плана также приостанавливается.
Другими словами, если вы отвечаете на все события жизненного цикла для своей деятельности соответствующим образом, нет необходимости использовать это, если вы действительно не хотите делать что-то конкретное, связанное с отключением.
Тон ACTION_SHUTDOWN
был введен в API Level 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
Intent, который отправляется при перезапуске телефона.