我有一个广播接收器,可在设备完成启动时启动服务。但是我不知道如何在代码中禁用/启用它。
这是我的清单:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<receiver
android:name=".BootReceiver"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED">
<action android:name="android.intent.action.QUICKBOOT_POWERON">
</intent-filter>
</receiver>
BootReceiver.java:
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
context.startService(new Intent(context, TouchService.class));
}
}
我的问题是,我在这里放什么?
if (!rBoot.isChecked()) {
????????????
}
答案 0 :(得分:0)
您可以使用SharedPreference
并在设备完成启动时设置flag
并检查启用和禁用BroadCastReceiver
的标记。
答案 1 :(得分:0)
试试这个
boolean enabled=prefs.getBoolean(key, false);
int flag=(enabled ?
PackageManager.COMPONENT_ENABLED_STATE_ENABLED :
PackageManager.COMPONENT_ENABLED_STATE_DISABLED);
ComponentName component=new ComponentName(EditPreferences.this, OnBootReceiver.class);
getPackageManager()
.setComponentEnabledSetting(component, flag,
PackageManager.DONT_KILL_APP);