2016-04-08 19 views
0

現在、ユーザーが選択した特定の時刻に表示する必要がある通知に取り組んでいます。通知が表示されないときの表示

しかし、私がそれを実行すると、通知は表示されますが、選択した時刻には表示されません。時刻を選択する前にtimepickerdialogの時刻が表示されます。

通知は選択した時間にのみ表示されるようにコードを変更する方法を知っていますか?

showDialog(DIALOG_ID); //this is the dialog that asks for an hour and minute. 


alarmMethod1(); 


private void alarmMethod1(){ 


     Calendar calendari1 = Calendar.getInstance(); 
     calendari1.set(Calendar.HOUR_OF_DAY, hour_x); 
     calendari1.set(Calendar.MINUTE, minute_x); 
     calendari1.set(Calendar.SECOND, 00); 

     Intent myIntent1 = new Intent(Main2Activity.this, NotifyService1.class); 
     AlarmManager alarmManager1 = (AlarmManager) getSystemService(ALARM_SERVICE); 
     pendingIntent1 = PendingIntent.getService(Main2Activity.this, 0, myIntent1, 0); 
     alarmManager1.setRepeating(AlarmManager.RTC_WAKEUP, calendari1.getTimeInMillis(), 24 * 60 * 60 * 1000, pendingIntent1); 

} 

が続いてここでの意図が行くクラスです:

public class NotifyService1 extends Service { 

@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 
@TargetApi(Build.VERSION_CODES.JELLY_BEAN) 
@Override 
public void onCreate(){ 
    Uri sound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 


    NotificationManager nNM = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
    Intent intent1 = new Intent(this.getApplicationContext(),Main3Activity.class); 
    PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent1, 0); 

    Notification mNotify = new Notification.Builder(this) 
      .setContentTitle("Hora d'entrenar!") 
      .setContentText("Clica per començar entrenament de pit i braços") 
      .setSmallIcon(R.drawable.logofinal) 
      .setContentIntent(pIntent) 
      .setSound(sound) 
      .build(); 

    nNM.notify(1,mNotify); 

} 

} 

答えて

0

のAndroid API 19ので、すべてのアラームは、バッテリ消費を低減するために不正確であり、それはあなたのアラームが正確にトリガされないことを意味しますもしあなたが本当にそれをする必要があるなら、あなたはsetExactを使い、自分でリピートアラームハンドラを書く必要があります。もはや、 "正確と繰り返しの設定"はありません。 、参照してください。

http://developer.android.com/reference/android/app/AlarmManager.html#setRepeating(int, long, long, android.app.PendingIntent)

http://developer.android.com/reference/android/app/AlarmManager.html#setExact(int, long, android.app.PendingIntent)

関連する問題