2013-08-29 97 views
0
  Date dat = new Date(); 
      Calendar cal_alarm = Calendar.getInstance(); 
      Calendar cal_now = Calendar.getInstance(); 
      cal_alarm.setTime(dat); 
      cal_alarm.set(Calendar.HOUR_OF_DAY, hrs);// set the alarm time 
      cal_alarm.set(Calendar.MINUTE, min); 
      cal_alarm.set(Calendar.SECOND, 0); 
      cal_alarm.set(Calendar.MILLISECOND, 0); 
      if (cal_alarm.before(cal_now)) {// if its in the past increment 
       cal_alarm.add(Calendar.DATE, 1); 
      } 

      Intent intent = new Intent(ctx, AlarmReceiver.class); 
      // intent.putExtra("Reminder to Take Photo", "Pixitch!"); 
      PendingIntent sender = PendingIntent.getBroadcast(ctx, 0010000, 
        intent, 0); 
      // Get the AlarmManager service 
      long tmemills = cal_alarm.getTimeInMillis() 
        - cal_now.getTimeInMillis(); 
      AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
      am.setRepeating(AlarmManager.RTC_WAKEUP, tmemills, 
        AlarmManager.INTERVAL_DAY, sender); 

報警接收機類報警管理器被立即運行

public class AlarmReceiver extends BroadcastReceiver { 

private static final int MY_NOTIFICATION_ID = 1; 
private NotificationManager notificationManager; 
private Notification myNotification; 

// Context ctx = this; 

@SuppressWarnings("deprecation") 
@Override 
public void onReceive(Context context, Intent intent) { 
    try { 
     NotificationManager mNM; 
     mNM = (NotificationManager) context 
       .getSystemService(Context.NOTIFICATION_SERVICE); 
     Notification notification = new Notification(
       R.drawable.ic_launcher, "Pixitch Notification !", 
       System.currentTimeMillis()); 
     PendingIntent contentIntent = PendingIntent.getActivity(context, 0, 
       new Intent(context, AlarmManage.class), 0); 
     // Set the info for the views that show in the notification panel. 
     notification.setLatestEventInfo(context, "Pixitch Notification!", 
       "Reminder For TakePhoto", contentIntent); 
     mNM.notify(0, notification); 
    } catch (Exception e) { 
     Toast.makeText(
       context, 
       "There was an error somewhere, but we still received an alarm", 
       Toast.LENGTH_SHORT).show(); 
     e.printStackTrace(); 

    } 
} 

}

tmemills的值是278088

的tmemills是約4.5分鐘,但

報警管理器正在立即運行

我無法找到問題所在,因爲我是Android初學者。請幫我

+0

post ur AlarmReceiver.class – TheFlash

+0

親愛的@Indiandroid添加了Alarm Reciever類 – Viresh

回答

2

試試這個:

am.setRepeating(AlarmManager.RTC_WAKEUP, tmemills + System.currentTimeMillis(), 
    AlarmManager.INTERVAL_DAY, sender); 
+0

的結果是什麼? – flx

+0

非常感謝你.... @ flx – Viresh

1

擺脫tmemills。使用cal_alarm.getTimeInMillis()作爲set()調用AlarmManager的第二個參數,因爲這是您希望事件發生的Unix時期以來的毫秒數。