[英]android register a permanent Broadcast Receiver
我需要创建一个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>
该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 );
我不确定这种方法的持久性。 我在我的一个应用程序中使用了它,但是它不是用于启动接收器的,它不必在启动时也可以持久。 如果要走那条路,就必须尝试一下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.