2017-08-28 1 views
1

ここに私のコードです。このコードでは、30ヶ月の月間通知を設定します。条件を与え、31,28日を持つ月の通知を設定します。ここで30日間の月間INTERVEL_DAY * 30の条件を与えました。すべての月の通知を設定するにはどうすればいいですか?アンドロイドは私に毎月の通知を得るのを手伝ってくれます。何ヶ月間の日数が与えられるべきか30,31,28

intent = new Intent(getBaseContext(), AlarmReceiver.class); 
    pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); 
    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
    cale.getTimeInMillis(),AlarmManager.INTERVAL_DAY*30, pendingIntent); 
    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); 
    intent = new Intent("android.media.action.DISPLAY_NOTIFICATION"); 
    broadcast = PendingIntent.getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, cale.getTimeInMillis(), broadcast); 
+0

設定3のアラームがトリックを行います。 1つは30代、2つ目は31歳、もう1つはfebです。 – Wizard

+0

私はむしろあなたが1つの間隔の設定を目指すのではなく、むしろ次のアラームを月ごとに設定することをお勧めしたいと考えています –

+0

ねえ...ありがとうございます。例えば毎月29日は毎月でなければなりません。どうすればいいですか? – shwettha

答えて

0
Calendar calendar = Calendar.getInstance(); 
calendar.set(Calendar.DATE,1); 
calendar.set(Calendar.MONTH,1);//1 Means February 
calendar.set(Calendar.YEAR,2017); 

calendar.getActualMaximum(Calendar.DAY_OF_MONTH); 

あなたが疑問がある場合は、このhelps.Commentをご希望ください。

-1

Calendarオブジェクトを使用します。カレンダーには、分、曜日、月などを追加できる追加機能があります。現在の日付に1か月を追加すると、今日から1か月になります。その後、AlarmManagerのエポックからミリ秒に変換します。

+0

彼はカレンダーを使用しています。さらに彼は反復間隔でそれを一度設定する方法を探しています –

+0

私はそこでそれを使って逃しました、私の悪いです。一度setRepeatingでそれをやりたければ、できません。 1回限りのアラームを設定し、そのアラームを次に設定します。 –

+0

私は通知オプションを毎月に設定しています...私がカレンダーオブジェクトを使用していれば、通知を正しく取得できますか? – shwettha

0

年、月、日を取る。そこから、今月の最終日を得ることができます。この日付をこのAlarmManager.INTERVAL_DAY * LastDayofMonthのようにします。

+0

u ..its働く – shwettha

0
Calendar calendar = Calendar.getInstance(TimeZone.getDefault()); 
calendar.get(Calendar.MONTH) 

AlarmManager.INTERVAL_DAY*30 -> AlarmManager.INTERVAL_DAY * calendar.getActualMaximum(Calendar.DAY_OF_MONTH) 
関連する問題