2011-10-19 6 views
1

メソッド内でPreferenceActivity内にPendingIntentを設定しようとしていますが、Eclipseで赤いアンダーラインエラー "AlarmReceiverChangeImageを変数に解決できません"が表示されます。このエラーは、BroadcastReceiverの名前である "AlarmReceiverChangeImage"にあります。メソッド内のPendingIntentステートメントの "AlarmReceiverChangeImage"エラーメッセージ

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

更新: カーティスによって提供されたリンクを見た後、私はまた、私は、コードに次の変更を加えた場合、それが動作しますました。この静的最終

を追加しました:

private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) { 

は、メソッドの呼び出しを変更:

パブリッククラスSettingsActivityはPreferenceActivityが OnSharedPreferenceChangeListener {

protected static final Intent AlarmReceiverChangeImage = null; 

SharedPreferences pref; 

はこのように見える方法を変更し実装して拡張このように見える:

​​

答えて

1

getBroadcastメソッドのドキュメントを参照してください。 3番目の議論は、あなたがしようとしているように、BroadcastRecieverではなくIntentであるはずです。あなたが行う必要があるのは、作成してIntentを作成し、IntentFilterをBroadcastRecieverのマニフェストに入れて、BroadcastRecieverが放送された時点でIntentを受信するようにすることです。

+0

こんにちはKurtis、ありがとうございました。本当に、Emad。 –