2011-12-17 27 views
1

下面的代碼不會引發任何錯誤,也不會起作用。當我調試addInvoiceReminder()方法時,它顯示時間正在正確設置,並且AlarmManager被設置爲在先前設置的時間關閉。有人能看到我的缺陷嗎?我不確定爲什麼BroadcastReceiver的onRecieve事件從未觸發。AlarmManager永遠不會爲BroadcastReceiver返回事件,如何調試?

//---adds an invoice reminder when the user successfully adds a sales or expense invoice--- 
public void addInvoiceReminder() { 
    //---gets a Calendar object with current time--- 
    Calendar cal = Calendar.getInstance(); 
    //---sets the calendar object to the reminder dialog date--- 
    //cal.set(reminder_year, reminder_month, reminder_day); 
    cal.add(Calendar.SECOND, 30); 

    Intent intent = new Intent(this, DueInvoiceAlarmReceiver.class); 
    intent.putExtra("reminder", "Invoice Number: 999999 is due!");   
    PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent, 0); 

    //---gets the alarm manager service set for the calendar time which is the reminder time--- 
    AlarmManager alarm_manager = (AlarmManager) getSystemService(ALARM_SERVICE); 
    alarm_manager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), sender); 
} 

//---Receives the event fired when the reminder date for an invoice is passed--- 
public class DueInvoiceAlarmReceiver extends BroadcastReceiver {   
    @Override 
    public void onReceive(Context context, Intent intent) { 
     try { 
     Bundle bundle = intent.getExtras(); 
     String message = bundle.getString("reminder"); 
     Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); 
     } catch (Exception e) { 
     Toast.makeText(context, "There was an error somewhere, but we still received an alarm", Toast.LENGTH_SHORT).show(); 
     e.printStackTrace();   
     } 
    }  
} 
+0

什麼不起作用? –

+0

BroadcastReceiver的onReceive從不觸發,我在DueInvoiceAlarmReceiver中設置了一個調試點,它從不觸發。 – AutoM8R

回答

1

確保您在清單中聲明瞭廣播接收器。

+0

謝謝,但它被宣佈。對不起,原來忘了提這個。 – AutoM8R

0

嘗試Calendar cal = cal .getInstance(); cal.setTimeInMillis(System.currentTimeMillis());

因爲你想接受磨的時間,但從來沒有太了。

+0

嗯,不,因爲當我調試我看到時間設置在毫秒,這是通過「cal.getTimeInMillis()」實現的,你可以在addInvoiceReminder()的最後一行看到它。 – AutoM8R

+0

但是,無論如何,仍然難住這個.. – AutoM8R

+0

是啊我也很難過。祝你好運 – domshyra

相關問題