我正在提供服务,所以我有从服务扩展而来的服务类。我从 PreferenceScreen 获得一个复选框,并根据它是否被选中执行操作。要获得 CheckBoxPreference,我使用 getPreferenceManager() 方法。但它有红色下划线。当我将鼠标悬停在它上面时,我会看到这个错误The method getPreferenceManager() is undefined for the type BatteryService
。当我在我的主类中使用相同的代码时,它就可以工作了。这是我的代码
public int onStartCommand(Intent intent, int flags, int startId) {
initNotification();
final CheckBoxPreference checkboxPref = (CheckBoxPreference) getPreferenceManager().findPreference("cbAlarm");
checkboxPref.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference,
Object newValue) {
if (newValue.toString().equals("true")) {
Toast.makeText(getApplicationContext(), "Service Started", Toast.LENGTH_LONG).show();
registerReceiver(batteryInfoReceiver, new IntentFilter(
Intent.ACTION_BATTERY_CHANGED));
} else if (newValue.toString().equals("false")) {
stopService(new Intent(getBaseContext(),
BatteryService.class));
Toast.makeText(getApplicationContext(),
"Unchecked", Toast.LENGTH_SHORT).show();
}
return true;
}
});
return START_STICKY;
}
我怎么解决这个问题?请帮忙