Pregunta

Estoy tratando de configurar un INTENS PENDENTE dentro de una empresa preferencia en un método, pero Eclipse muestra un error de subrayado rojo "AlarmReceiverChangeChangeChangeMage no se puede resolver a una variable". El error está en "alarmReceiverChangeMage", que es el nombre de un emisor.

¿Puede decirme cómo cambiar el código para que no le dará el error a "alarmRreceiverChangeMage"?

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

ACTUALIZACIÓN: Después de mirar el enlace proporcionado por Kurtis, también descubrí que funcionará si realizaba los siguientes cambios en el código.

Se agregó esta final estática:

La configuración de la clase pública La Actividad extiende la reactividad de la preferencia implementa OnsharedPreferenceChangelistener {

protected static final Intent AlarmReceiverChangeImage = null;

SharedPreferences pref;

Cambió el método para verse así:

private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) {

Cambió la llamada al método para verse así:

                        /*
                         * 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);
                        }
¿Fue útil?

Solución

Por favor, mire la documentación de la getBroadcast método. Notará que el tercer argumento se supone que es una intención, no un locutor como lo estás tratando. Lo que debe hacer es crear e intenciones y luego poner un intentfilter en su locutor en el manifiesto para que su locutor reciba la intención cuando se transmite.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top