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

できることは、デバイスの起動が完了したときにSharedPreferencea を使用して設定し、フラグをチェックして を有効または無効にすることです。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 に答える