Я пытаюсь установить PendingIntent внутри PreferenceActivity в методе, но Eclipse отображает красную ошибку подчеркивания «AlarmReceiverChangeImage не может быть разрешен в переменную».Ошибка на «AlarmReceiverChangeImage», который является именем BroadcastReceiver.
Можете ли вы сказать мне, как изменить код, чтобы он не выдал ошибку на «AlarmReceiverChangeImage»?
private void setRepeatingAlarm(int time_before_changing_wallpaper) {
/*
* Set up alarm manager and get it going.
*/
AlarmManager myAlarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
PendingIntent myIntent = PendingIntent
.getBroadcast(SettingsActivity.this, 0,
AlarmReceiverChangeImage, 0);
myAlarmManager.setRepeating(
AlarmManager.RTC_WAKEUP, START_TIME,
time_before_changing_wallpaper, myIntent);
}
Обновление: просмотрев ссылку, предоставленную Kurtis, я также обнаружил, что она будет работать, если я внесу следующие изменения в код.
Добавил этот статический финал:
открытый класс SettingsActivity расширяет возможности PreferenceActivityOnSharedPreferenceChangeListener {
protected static final Intent AlarmReceiverChangeImage = null;
SharedPreferences pref;
Изменен метод, чтобы он выглядел так:
private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) {
Изменен вызов метода, чтобы он выглядел так:
/*
* Set the default wallpaper changing time of 10
* seconds if it has not already been set.
*/
String str_list_time_before_changing_wallpaper = pref
.getString(
"list_time_before_changing_wallpaper",
"");
if (str_list_time_before_changing_wallpaper
.equals(null)) {
/*
* Set the repeating alarms.
*/
setRepeatingAlarm(EVERY_10_SECONDS, AlarmReceiverChangeImage);
}