7

I am trying to receive (with BroadcastReceiver) the action of shutting down, booting and rebooting.

I searched a lot, but I could not figure out what is the difference between Intent.ACTION_REBOOT and Intent.ACTION_SHUTDOWN, and when is Intent.ACTION_REBOOT called (or should I say "broadcasted").

Can please someone explain that for me?

mmBs
  • 8,421
  • 6
  • 38
  • 46
Or B
  • 1,675
  • 5
  • 20
  • 41

2 Answers2

8

Intent.ACTION_REBOOT is triggered if Reboot/Restart command initiated. This Action only can be used by System code/apps.

Intent.ACTION_SHUTDOWN :- is triggered when SHUTDOWN command is initiated or the device is being shutdown. After this Action is completed device will start shutdown process and any unsaved data will be lost.

You can also read what docs says here >> ACTION_REBOOT and ACTION_SHUTDOWN

AAnkit
  • 27,299
  • 12
  • 60
  • 71
  • So how can you explain that when I reboot my device, the **ACTION_REBOOT** is not triggered? – Or B Jul 29 '13 at 08:37
  • Because it is defined only for system apps as par the documents. – AAnkit Jul 29 '13 at 08:48
  • So when does it happen? – Or B Jul 29 '13 at 08:56
  • 3
    it isn't for you, forget it, Use SHUTDOWN instead. – AAnkit Jul 29 '13 at 09:10
  • 1
    Just for anyone that might want to know, not even with the REBOOT permission (system permission) I can detect ACTION_REBOOT on Lollipop 5.1. Might mean that when the system reboots the device, it sends the broadcast with some permission that apps need to have to detect it. Maybe a special (signature?) permission, undocumented and not on hidden/internal APIs (or I'd see it). Pity. Guess I'll have to stick with SHUTDOWN only, even on reboots. – Edw590 May 07 '21 at 20:49
4

Intent.ACTION_SHUTDOWN

Broadcast Action: Device is shutting down. This is broadcast when the device is being shut down (completely turned off, not sleeping). Once the broadcast is complete, the final shutdown will proceed and all unsaved data lost. Apps will not normally need to handle this, since the foreground activity will be paused as well.

Intent.ACTION_REBOOT

Broadcast Action: Have the device reboot. This is only for use by system code. This is a protected intent that can only be sent by the system.

Suji
  • 6,044
  • 2
  • 19
  • 17