Сообщение об ошибке «AlarmReceiverChangeImage» в операторе PendingIntent внутри метода

#android #android-pendingintent #preferenceactivity

#Android #android-pendingintent #preferenceactivity

Вопрос:

Я пытаюсь настроить 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 расширяет PreferenceActivity реализует OnSharedPreferenceChangeListener {

 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);
                        }
  

Ответ №1:

Комментарии:

1. Привет, Куртис, спасибо за помощь. Действительно, Emad.