Frage

Ich versuche, in einer Methode einen anhängigen Intensiv in einer Befertigung einrichten, aber Eclipse zeigt einen roten Unterstreichungsfehler an. Der Fehler liegt in "AlarmreceverchangeImage", dem Namen eines Rundfunks.

Können Sie mir sagen, wie ich den Code ändern kann, damit er nicht den Fehler in "AlarmReceiverchangeImage" angibt?

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: Nachdem ich den von Kurtis bereitgestellten Link angesehen habe, fand ich auch, dass es funktioniert, wenn ich die folgenden Änderungen am Code vorgenommen habe.

Fügte dieses statische Finale hinzu:

Die Einstellungsaktivität der öffentlichen Klassen erweitert die Beendigung der Bevorzugung implementiert OnsharedPreferencechangelistener {

protected static final Intent AlarmReceiverChangeImage = null;

SharedPreferences pref;

Änderte die Methode, um so auszusehen:

private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) {

Änderte den Anruf in die Methode, um so auszusehen:

                        /*
                         * 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);
                        }
War es hilfreich?

Lösung

Bitte schauen Sie sich die Dokumente für die an GetBroadcast Methode. Sie werden bemerken, dass das dritte Argument eine Absicht sein soll, kein Rundfunk, wie Sie es versuchen zu tun. Was Sie tun müssen, ist zu erstellen und in Absicht zu erstellen und dann einen IntentFilter in das Manifest zu setzen, damit Ihr Rundfunkstock die Absicht erhält, wenn es immer ausgestrahlt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top