0

AlarmManager() を使用して通知を発生させています。しかし、午前 10 時と 24 時間ごとに発火するように設定する方法がわかりません。誰でも私を助けてください。

私のコードは以下の通りです:

        Calendar Calendar_Object = Calendar.getInstance();
        Calendar_Object.set(Calendar.HOUR_OF_DAY, 10);
        Calendar_Object.set(Calendar.MINUTE, 00);
        Calendar_Object.set(Calendar.SECOND, 0);
        Intent myIntent = new Intent(Splash.this, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(Splash.this, 0, myIntent, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC,Calendar_Object.getTimeInMillis(),(24 * 60 * 60 * 1000),pendingIntent);
4

2 に答える 2

1

24 時間ごとに、次のコードを試してください。

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
long now = System.currentTimeMillis();
long diffMillis = now - pref.getLong("CurrentTimeMillis", 0);
if( diffMillis >= (3600000  * 24) ) {

 // Your code here:)
SharedPreferences.Editor editor = pref.edit();
editor.putLong("CurrentTimeMillis", System.currentTimeMillis());
editor.commit();

} else {
 // too early
}
于 2013-05-31T12:01:43.457 に答える
0
 Calendar Calendar_Object = Calendar.getInstance();
        Calendar_Object.set(Calendar.HOUR_OF_DAY, 10);
        Calendar_Object.set(Calendar.MINUTE, 00);
        Calendar_Object.set(Calendar.SECOND, 0);
        Intent myIntent = new Intent(Splash.this, AlarmReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(Splash.this, 0, myIntent, 0);
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        alarmManager.setRepeating(AlarmManager.RTC,Calendar_Object.getTimeInMillis(),AlarmManager.INTERVAL_DAY,pendingIntent);
于 2013-05-31T12:03:07.333 に答える