android注册一个永久的广播接收器

2023-12-12

我需要创建一个 BroadcastReceiver,它在每次设备启动时立即执行特定任务。此外,当单击某个按钮时,接收器应该停止启动。有人可以帮我管理吗?


解决问题的第一部分所需要做的就是制作一个BroadcastReceiver并在清单中将其声明为:

<receiver android:name=".MyBootReceiver"
        android:enabled="true"
>
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    </intent-filter>
</receiver>

The QUICKBOOT_POWERON对于某些不发送的设备是必需的BOOT_COMPLETED播送。 HTC 设备喜欢使用快速启动。

对于问题的第二部分,有几种不同的方法可以实现这一点。您可以简单地设置一个值SharedPreferences您的接收器每次触发时都会检查,如果值指示,则立即退出。

您还可以在代码中禁用接收器:

getPackageManager().setComponentEnabledSetting( 
    new ComponentName( this, MyBootReceiver.class ),
        PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
        PackageManager.DONT_KILL_APP );

您可以使用相同的方法启用它:

getPackageManager().setComponentEnabledSetting( 
    new ComponentName( this, MyBootReceiver.class ),
        PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
        PackageManager.DONT_KILL_APP );

我不确定这种方法的持久性。我在我的一个应用程序中使用它,但它不是用于启动接收器,并且它不必在启动过程中持续存在。如果你想走那条路,你就必须尝试一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android注册一个永久的广播接收器 的相关文章

随机推荐