用户closures设备时有没有办法接收通知?

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

您可以使用在电话即将关机时广播的ACTION_SHUTDOWN意图 。 该文件说:

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

换句话说,如果您正确地响应您的活动的所有生命周期事件,则不需要使用它,除非您真的想要执行与closures相关的特定事情。

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

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

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

你还需要在你的Manifest中input如下内容:

 <receiver android:name=".ShutdownReceiver"> <intent-filter> <action android:name="android.intent.action.ACTION_SHUTDOWN" /> </intent-filter> </receiver> 

根据你在做什么,另一种select是使用ACTION_BOOT_COMPLETED在电话重新启动时发送的意图 。

除了ACTION_SHUTDOWN ,你应该添加android.intent.action.QUICKBOOT_POWEROFF到你的意图filter。
ACTION_SHUTDOWN并不总是在某些HTC设备(例如Evo 4g)上广播。
更具体地说,如果select重启, ACTION_SHUTDOWN被广播,但是如果select关机, QUICKBOOT_POWEROFF广播QUICKBOOT_POWEROFF

展开Dave Webb所说的是处理这个问题的恰当方法:

您可以覆盖Android Activity Lifecyclefunction

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

在大多数情况下,实施这些应该足够了,不需要你专门处理“关机”事件。

在Android网站上有更多的信息,并在这个生命周期问题的答案。