有什么方法可以在用户关闭设备时收到通知吗?

时间:2010-02-03 06:31:29

标签: android broadcastreceiver

我需要知道用户何时关闭他/她的手机。是否有任何广播(或类似的)在用户手机关机时通知?

3 个答案:

答案 0 :(得分:65)

您可以使用手机即将关机时播放的ACTION_SHUTDOWN Intent。文档说:

  

应用程序通常不需要处理此问题,因为前台活动也会暂停。

换句话说,如果您适当地响应了Activity的所有生命周期事件,除非您真的想要执行与关闭相关的特定操作,否则无需使用它。

{1}}意图在API级别4中引入,换句话说它只会在运行Android 1.6或更高版本的手机上发送

您将使用BroadcastReceiver捕获广播。它看起来像这样:

ACTION_SHUTDOWN

您还需要在Manifest中输入以下内容:

public class ShutdownReceiver extends BroadcastReceiver {

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

}

根据您正在做的事情,另一种选择是使用重新启动手机时发送的ACTION_BOOT_COMPLETED Intent

答案 1 :(得分:20)

ACTION_SHUTDOWN外,您还应将android.intent.action.QUICKBOOT_POWEROFF添加到您的意图过滤器中 ACTION_SHUTDOWN并不总是在某些HTC设备上广播(例如Evo 4g) 更具体地说,如果选择重新启动,则广播ACTION_SHUTDOWN,但如果选择关闭电源,则会广播QUICKBOOT_POWEROFF

答案 2 :(得分:0)

扩展Dave Webb所说的是处理这个问题的合适方法:

您可以覆盖Android活动生命周期功能

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

在大多数情况下,实施这些应该已经足够,并且不需要您专门处理“断电”事件。

有关Android Websitethis lifecycle question答案的更多信息。