机器人寄存器永久广播接收机(android register a permanent Broadca

2019-08-04 08:14发布

我需要创建并立即执行某些任务,每次设备启动一个BroadcastReceiver。 此外,点击某个按钮时,接收器应停止启动上启动。 有人可以帮我解决的呢?

Answer 1:

所有你需要解决你的问题的第一部分是做一个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>

QUICKBOOT_POWERON是必要的不发送的一些设备BOOT_COMPLETED广播。 HTC设备喜欢用QuickBoot工具,而不是一个。

对于你的问题的第二部分,还有你能做到这一点的几个不同的方式。 你可以简单地设置一个值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 );

我不能确定这种方法的持久性。 我用它在我的应用程序之一,但它不是一个引导接收器,并且它没有跨靴子坚持。 你必须用它做实验,如果你想要去的路线。



文章来源: android register a permanent Broadcast Receiver