Some HTC phones have a feature called Fast boot (can be enabled under Preferences -> Power). As I have understood it this works like hibernation.
When started again no BOOT_COMPLETEDetc. will be sent, instead applications will be 'resumed'. This is very hard for me to handle in my application (auto-start, depends on SD-card etc).
I think the best I could do right now is inform the user to disable Fast boot for the best experience.
As this is a non-standard setting how can I detect if it is enabled?
I would suggest looking into the ACTION_USER_PRESENT broadcast which is typically sent when the user unlocks the phone. From what I was able to find about the HTC fast-boot (terrible name, as it conflicts in search results with the regular fastboot), it is just putting the phone in sleep mode and wakes up to a lock screen.
Another alternative to explore is ACTION_SCREEN_ON
来源:https://stackoverflow.com/questions/8658862/detect-if-htc-fast-boot-is-enabled