messaggio di errore “AlarmReceiverChangeImage” nella dichiarazione PendingIntent all'interno di un metodo

StackOverflow https://stackoverflow.com/questions/7828497

Domanda

Sto cercando di impostare un PendingIntent all'interno di un PreferenceActivity in un metodo, ma viene visualizzato un errore di Eclipse sottolineatura rossa "AlarmReceiverChangeImage non può essere risolto a una variabile". L'errore è su "AlarmReceiverChangeImage" che è il nome di un BroadcastReceiver.

Puoi dirmi come modificare il codice in modo da non dare l'errore "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);
}

Aggiornamento: Dopo aver guardato il link fornito da Kurtis ho anche trovato che funzionerà se ho fatto le seguenti modifiche al codice.

Aggiunto questo static finale:

public class SettingsActivity estende attrezzi PreferenceActivity OnSharedPreferenceChangeListener {

protected static final Intent AlarmReceiverChangeImage = null;

SharedPreferences pref;

cambiato il metodo di guardare in questo modo:

private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) {

Modificata la chiamata al metodo per assomigliare a questo:

                        /*
                         * 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);
                        }
È stato utile?

Soluzione

Si prega di guardare il documetnation per la metodo getBroadcast . Noterete il terzo argomento si suppone che sia un intento, non un BroadcastReciever come si sta cercando di fare. Quello che dovete fare è creare e intenti e poi mettere un IntentFilter sul BroadcastReciever nel manifesto in modo che la vostra BroadcastReciever riceve l'intento, quando mai è di broadcast.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top