特定の時間に発砲する通知を取得しようとしています。時間を設定する「alCal」変数があるので、AlarmManagerを使用する必要がないことに気付きました。alCalをLongに変換しSystem.currentTimeMillis();
て、fireTime変数の代わりに使用することは可能でしょうか?もしそうなら、どのように私はalCalをLongに変換しますか?これが私の現在のコードです:
//---use the AlarmManager to trigger an alarm---
AlarmManager aMan = (AlarmManager) getSystemService(ALARM_SERVICE);
//---get current date and time---
Calendar alCal = Calendar.getInstance();
//---sets the time for the alarm to trigger---
alCal.set(Calendar.HOUR_OF_DAY, 23);
alCal.set(Calendar.MINUTE, 41);
alCal.set(Calendar.SECOND, 00);
Intent noteIntent = new Intent(this, Splash.class);
PendingIntent pendI = PendingIntent.getActivity(this, 0, noteIntent, 0);
long fireTime = System.currentTimeMillis();
String noteBody = "notification body";
String noteTitle = "notification title";
Notification note = new Notification(R.drawable.noteicon, noteTitle, fireTime);
note.setLatestEventInfo(this, noteTitle, noteBody, pendI);
note.defaults = Notification.DEFAULT_SOUND;
noteman.notify(uniqueID, note);
//---sets the alarm to trigger---
aMan.set(AlarmManager.RTC_WAKEUP, alCal.getTimeInMillis(), pendI);
finish();
わかりました。alCalをlongに変換できないようです。そのため、AlarmManagerを使用する必要があると思います。上記のコードを前提として、AlarmMangerが指定された時間に通知を発行するようにコードを変更するにはどうすればよいですか?私はAndroidとJavaに慣れていないので、実際にはスラウションを見ていません。新しいNotification呼び出しのどこかでalCalを呼び出す必要があると思いますが、その方法がわかりません。Eclipseは、fireTimeをalCalに置き換えることはできないと言っているので、次に何を試すべきかわかりません。