gpt4 book ai didi

android - BOOT_COMPLETE 和 ACTION_SHUTDOWN 从不调用 BroadcastReceiver

转载 作者:太空狗 更新时间:2023-10-29 16:38:52 24 4
gpt4 key购买 nike

我想使用 BroadcastReceiver 捕获 ACTION_SHUTDOWN 和 BOOT_COMPLETE。但事实证明,这两个信号都不会触发 BroadcastReceiver(我在 logcat 上没有看到任何日志)。这是我的源代码。

我授予 list 权限

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

我尝试以两种方式注册 BroadcastReceiver

protected void onCreate(Bundle savedInstanceState)
{
registerReceiver(BootReceiver, new IntentFilter(Intent.ACTION_BOOT_COMPLETED));
registerReceiver(ShutDownReceiver, new IntentFilter(Intent.ACTION_SHUTDOWN));
}

<receiver android:name=".BootReceiver"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>

BootReceiver和ShutDownReceiver的源码如下

private BroadcastReceiver BootReceiver  = new BroadcastReceiver()
{
private String ACTION_BOOT = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(ACTION_BOOT)){
//my stuff
Log.d("Power", "Boot Complete");
}
}
};

private BroadcastReceiver ShutDownReceiver = new BroadcastReceiver()
{
private String ACTION_SHUTDOWN = "android.intent.action.ACTION_SHUTDOWN";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION_SHUTDOWN)) {
//my stuff
Log.d("Power", "Shutdown Complete");
}
}
};

此外,我在 onDestroy 中注销了两个 BoradcastReceiver

public void onDestroy()
{
unregisterReceiver(BootReceiver);
unregisterReceiver(ShutDownReceiver);
super.onDestroy();
}

有人知道我的代码有什么问题吗?或者我想念什么?谢谢。

最佳答案

我发现了为什么它不起作用。由于我使用的是 HTC 设备,因此广播消息与其他设备不同。

  1. 关闭事件广播“com.htc.intent.action.QUICKBOOT_POWEROFF
  2. 重启(reboot)事件广播“android.intent.action.ACTION_SHUTDOWN
  3. 启动事件广播“com.htc.intent.action.QUICKBOOT_POWERON

在其他设备上,当关闭设备时,它可能会广播“android.intent.action.QUICKBOOT_POWEROFF”。

关于android - BOOT_COMPLETE 和 ACTION_SHUTDOWN 从不调用 BroadcastReceiver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com