2014-03-02 108 views
1

中被解僱該代碼中的問題是什麼?我想,在上午11點到火災報警,我在上午10點的設置它,所以它應該是一個小時這是從來沒有發生過鬧鐘管理器從未在android

火後
 public void schedulePayment(Context ctxt,int numOfDays) { 

     mgr = (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE); 
     Intent myIntent = new Intent(ctxt, NotificationPayment.class); 
     PendingIntent pendingIntent = PendingIntent.getService(ctxt, 0, myIntent, 0); 

     Calendar time = Calendar.getInstance(); 

     time.setTimeInMillis(System.currentTimeMillis()); 
     time.clear(); 

     time.set(Calendar.HOUR_OF_DAY, 11); 
     time.set(Calendar.MINUTE, 1); 
     time.set(Calendar.SECOND, 1); 

     long limit_time = time.getTimeInMillis() ; 

     //  if(time.before(Calendar.getInstance())){ 
     //   Log.d("add time ","extra"); 
     //   limit_time+=AlarmManager.INTERVAL_DAY; 
     //  } 
     Log.d("in schedule ","done..."+limit_time); 
     mgr.setRepeating(AlarmManager.RTC_WAKEUP,   limit_time,AlarmManager.INTERVAL_HALF_HOUR, pendingIntent); 

    }  
+0

爲什麼你叫'time.clear()''後time.setTimeInMillis( )'? –

回答

2

不要叫time.clear();這是刪除所有的日曆字段,像日期一樣。

1

報警經理從來沒有發射becouse您limit_time(在setRepeating第二個參數)小於currentTimeMillis.Try使用System.currentTimeMillis的+區間,而不是limit_time