mensagem de erro "AlarmReceiverChangeImage" na declaração PendingIntent dentro de um método

votos
1

Eu estou tentando configurar um PendingIntent dentro de um PreferenceActivity em um método, mas Eclipse exibe um erro sublinhado vermelho AlarmReceiverChangeImage não pode ser resolvido para uma variável. O erro está em AlarmReceiverChangeImage que é o nome de um BroadcastReceiver.

Você pode me dizer como alterar o código para que ele não dará o erro em 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);
}

Update: Depois de olhar para o link fornecido por Kurtis Eu também achei que ele vai trabalhar, se eu fiz as seguintes alterações no código.

Adicionado este static final:

classe pública SettingsActivity estende PreferenceActivity implementa OnSharedPreferenceChangeListener {

protected static final Intent AlarmReceiverChangeImage = null;

SharedPreferences pref;

Mudou o método para se parecer com isto:

private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) {

Mudou a chamada para o método para se parecer com isto:

                        /*
                         * 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);
                        }
Publicado 19/10/2011 em 22:38
fonte usuário
Em outras línguas...                            


1 respostas

votos
1

Por favor, olhe o documetnation para o getBroadcast método. Você notará que o terceiro argumento é suposto ser uma intenção, não um BroadcastReciever como você está tentando fazer. O que você precisa fazer é criar e Intenção e, em seguida, colocar um IntentFilter em seu BroadcastReciever no manifesto para que seu BroadcastReciever recebe a Intenção Quando já é broadcast.

Respondeu 19/10/2011 em 22:43
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more