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

Ben*_*IOs 42 android broadcastreceiver

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

Dav*_*ebb 66

您可以使用手机即将关闭时广播的ACTION_SHUTDOWNIntent.文件说:

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

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

ACTION_SHUTDOWN意向书是在API级别4中引入的,换句话说,它只会在运行Android 1.6或更高版本的手机发送.

你将陷入广播陷阱BroadcastReceiver.它看起来像这样:

public class ShutdownReceiver extends BroadcastReceiver {

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

}
Run Code Online (Sandbox Code Playgroud)

您还需要在Manifest中输入如下条目:

<receiver android:name=".ShutdownReceiver">
  <intent-filter>
    <action android:name="android.intent.action.ACTION_SHUTDOWN" />
  </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

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

  • 有没有保证您的代码有足够的时间来完成使用它?即关闭是继续还是等待/阻止接收器完成所需的任何操作? (2认同)

Nal*_*iba 20

除此之外ACTION_SHUTDOWN,您应该添加android.intent.action.QUICKBOOT_POWEROFF到您的intent-filter.
ACTION_SHUTDOWN并不总是在某些HTC设备上广播(例如Evo 4g).
更具体地说,如果选择"重新启动",ACTION_SHUTDOWN则进行广播,但如果选择"关闭",QUICKBOOT_POWEROFF则会进行广播.