2017-01-03 10 views
2

AlarmManagerに問題があります。私はlong when = 5 * 1000; \\For example 5secs laterを設定した場合、このコードはうまく動作します。このコードAlarmManagerは特定の時間に起動しません

private void setAlarm(long when) { 
    Intent intent = new Intent(NoteActivity.this, AlarmReceiver.class); 
    intent.putExtra("ID", note.getId()); 
    AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
    manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, when, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
    Toast.makeText(getApplicationContext(),"Reminder set up", Toast.LENGTH_SHORT).show(); 
} 

でアラームを設定することができるよ、私は

Calendar calendar = Calendar.getInstance(); 
        calendar.setTime(date); 
        long selectedDate = date.getTime(); 
        long timeSince1970 = System.currentTimeMillis(); 
        long timeForAlarm = selectedDate - timeSince1970; 

        Intent intent = new Intent(NoteActivity.this, AlarmReceiver.class); 
        intent.putExtra("ID", note.getId()); 
        AlarmManager manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
        manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, timeForAlarm, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
        Toast.makeText(getApplicationContext(),"Reminder set for "+calendar.getTime().toString(), Toast.LENGTH_SHORT).show(); 

私のアラームtriggerdの2secs後にこのコードを使用している場合。私は間違っているの? :/ AlarmManager.ELAPSED_REALTIME_WAKEUPAlarmManager.RTC_WAKEUPを試しましたが、何も変更されていません。

私の質問は重複していないことを確認してください。私は自分の問題を解決しようとする何かを見つけられませんでした。

+1

(ヒント:ほとんどで、それはそれを助けることが本当に重複している場合は何も変わりません重複として何かをクローズしないようにコミュニティを告げます。閉鎖のためにもっと目標を絞ってください。): - \ –

+0

@JonAdamsそれは本当です。 haha –

答えて

3

あなたは、Android Studioで作業していると仮定すると - あなたのテキスト・ポインタがset方法であるとAlarmManager::setの説明を読みながらF1をクリックし、(ない場合は、切り替える必要があります)。

注:API 19以降、このメソッドに渡されたトリガ時間が不正確なものとして扱わ です:アラームは、この時間前に配信 が、延期し、後でいくつかの時間を送達することができることはありません。 OSは システム全体にアラームをまとめて一括して送信し、デバイスが「起床」してバッテリの使用を最小限に抑える必要がある回数を最小限に抑えるため、このポリシーを で使用します。一般に、近い将来に に予定されているアラームは、 の将来までにスケジュールされたアラームがある限り、延期されません。代わりに、設定された使用の

+0

私のアラームをスケジュールする方法はありますか?私はset_alarmまたはこれのような許可を使うべきですか? –

+0

男、私はすでにあなたにリンクを与えて、ASでドキュメントを使用する方法を述べました。あなたがする必要があるものだけが読まれます。 docからのコピー - 過去: 'あなたのアプリケーションに強い注文要件がある場合、必要な動作を得るために使用できる他のAPIがあります。 setWindow(int、long、long、PendingIntent)とsetExact(int、long、PendingIntent)を参照してください。 – Divers

0

をsetExact
manager.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, timeForAlarm, PendingIntent.getBroadcast(NoteActivity.this, 1, intent, PendingIntent.FLAG_UPDATE_CURRENT)); 
+0

動作しませんでした:/同じ問題を解決してください。アラームは2秒後にトリガされます。 –

関連する問題