2011-10-01 163 views
1

我正在構建報警應用程序。爲此,我需要提供一個時間作爲輸入。我正在嘗試下面的代碼,但報警不會觸發。我在網上搜索並修改了很多代碼,但仍然沒有運氣。報警管理器不會關閉

有人可以幫我一把。提前致謝。

Intent intent = new Intent(NapAppActivity.this, OnetimeAlarmReceiver.class); 
PendingIntent pendingIntent = PendingIntent.getBroadcast(NapAppActivity.this, 1, intent, 0); 

    Calendar cur_cal = new GregorianCalendar(); 
    cur_cal.setTimeInMillis(System.currentTimeMillis()); 

    Calendar cal = new GregorianCalendar(); 
    cal.add(Calendar.DAY_OF_YEAR, cur_cal.get(Calendar.DAY_OF_YEAR)); 
    cal.set(Calendar.HOUR_OF_DAY, 12); 
    cal.set(Calendar.MINUTE, 17); 
    cal.set(Calendar.SECOND, cur_cal.get(Calendar.SECOND)); 
    cal.set(Calendar.MILLISECOND, cur_cal.get(Calendar.MILLISECOND)); 
    cal.set(Calendar.DATE, cur_cal.get(Calendar.DATE)); 
    cal.set(Calendar.MONTH, cur_cal.get(Calendar.MONTH)); 

    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent); 
+1

有你的清單 –

+0

是是我做.. –

+0

拜託你'Log.d()'您的預定日期decalred接收機報警和時間? –

回答

2

我認爲你應該使用cal=Calendar.getInstance()獲得當前的日期/時間,而不是使用GregorianCalendar的構造函數。

然後,只需設置HourOfDay和Minutes,請勿觸摸其他字段。

+0

我試過Calendar cal = Calendar.getInstance();但也沒有運氣。 :( –

+0

與它一起,我發送了秒鐘,它的工作:) –

2
<receiver android:name=".OnetimeAlarmReceiver" android:process=":remote" /> 

您是否在聲明中聲明瞭接收方?

還在接收者名稱前加上全包聲明。如果您的Receiver在另一個包中,我已經使用了「。」在上面的聲明...

與問候,

Arpit

+0

它工作正常,當我使用System.currentTimeMillis()+ 1000 * 3所以日曆東西錯了 –