2017-11-17 20 views
0

私は紙にしたいことは非常に簡単ですについて混乱:アラームごとに深夜の引き金はアラーム

しかし、初心者であること、私はそのようなアラームを設定するトラブルを抱えています。実際、大部分は問題なく動作しますが、初めてアクティビティが開始されたとき(メモリワイプ後など)にトリガされます。私はある程度は、過去に何かが起きたかどうかをチェックすることを理解しています。これはプログラミングの知識が不十分で私にとって本当に意味をなさないものです。

マイカレンダー

Calendar calendar = Calendar.getInstance(); 

calendar.set(Calendar.HOUR_OF_DAY, 0); 
calendar.set(Calendar.MINUTE, 0); 
calendar.set(Calendar.SECOND, 1); 
calendar.set(Calendar.DAY_OF_YEAR, 1); 
calendar.set(Calendar.MILLISECOND, 0); 

setAlarm(calendar.getTimeInMillis()); 

setAlarm方法

private void setAlarm(long timeInMillis) { 
// Check if Calendar is set in the past to prevent an immediate alarm */ 
if (mCalendar.getTimeInMillis() < System.currentTimeMillis()) { 
//Add one day to the calendar (or whatever repeat interval you would like) 
     mCalendar.add(Calendar.DAY_OF_YEAR, 1); } 

AlarmManager alarmManager = (AlarmManager) 
getSystemService(Context.ALARM_SERVICE); 
Intent intent = new Intent(this, AlarmReceiver.class); 
PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent, 0); 
alarmManager.setRepeating(AlarmManager.RTC, timeInMillis, AlarmManager.INTERVAL_DAY, pi); 

} 

私はベテランのために何が間違ってかなり明白でなければならないと思いますが、私は時間のために、この上で立ち往生してきました。あなたが私を助けることができれば、ありがとう。

+0

'setAlarmClock'または' setExactAndAlloeWhileIdle'を使って、 'BOOT_COMPLETED'ブロードキャストのためにそれを追加して、それがアプリ起動時にそこにあるかどうかを確認し、そこになければ追加してください(強制停止) – EpicPandaForce

答えて

0

ブロードキャスト受信者を検索します。あなたの携帯電話をオフにしても、それは あなたのpendingintentを幾分リロードします。

関連する問題