0

我有一个广播接收器,它在设备完成启动时启动服务。但是我不知道如何在代码中禁用/启用它。

这是我的清单:

<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()) {
   ????????????
}
4

2 回答 2

0

您可以做的是在您的设备完成启动时使用SharedPreference并设置 a并检查标志以启用和禁用您的.flagBroadCastReceiver

于 2012-07-10T05:39:30.387 回答
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);
于 2012-07-10T05:48:02.660 回答