用户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网站上有更多的信息,并在这个生命周期问题的答案。