2012-12-26 32 views
0

我有一個意圖,在固定的時間(和日期)開始一個新的類。這意圖從固定的日期開始,但也在每次重新啓動時(也是在日期和時間過去之後)。在我的代碼中,New.class從26/12/12 - 21.30開始,但是如果在那段時間後重新啓動模擬器,New.class會自動啓動。爲什麼?謝謝!alarmmanager(每次重啓後顯示課程)

PS:這個代碼是一個自動啓動類中(公共無效的onReceive(上下文語境,意圖意圖){)

Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault()); 
cal.set(Calendar.DATE,26); 
cal.set(Calendar.MONTH,Calendar.DECEMBER); 
cal.set(Calendar.YEAR,2012); 
cal.set(Calendar.HOUR_OF_DAY, 21); 
cal.set(Calendar.MINUTE, 30);  
cal.set(Calendar.SECOND, 00);  

Intent intent3 = new Intent(context, New.class); 
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,intent3, 0); 
alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 

回答

1

這是由設計。請參閱documentation of the set() method

「如果時間發生在過去,將立即觸發警報。」

如果你想不是想要發生這種情況,你不應該安排報警。也就是說,您應該檢查自己是否在BroadcastReceiver中調用set()

+1

瞭解!很感謝! –