メソッドのPreferenceActivity内にPendingIntentを設定しようとしていますが、Eclipseに「AlarmReceiverChangeImageを変数に解決できません」という赤い下線エラーが表示されます。BroadcastReceiverの名前である「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);
}
更新:Kurtisが提供するリンクを確認したところ、コードに次の変更を加えても機能することがわかりました。
この静的ファイナルを追加しました:
パブリッククラスSettingsActivityはPreferenceActivityを拡張し、OnSharedPreferenceChangeListenerを実装します{
protected static final Intent AlarmReceiverChangeImage = null;
SharedPreferences pref;
メソッドを次のように変更しました。
private void setRepeatingAlarm(int time_before_changing_wallpaper, Intent AlarmReceiverChangeImage) {
メソッドの呼び出しを次のように変更しました。
/*
* 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);
}