2012-11-01 22 views
1

請引導我,讓警報(郵件發送)再次編譯並在事件發生1天之前提供郵件,然後在發生事件30分鐘之前提供郵件。警報廣播級別不再重複鬧鐘

在此先感謝。

public class MailAlarm extends BroadcastReceiver{ 

    NotificationManager nm; 

    public void onReceive(Context context, Intent intent) { 

     nm = (NotificationManager) context 
       .getSystemService(Context.NOTIFICATION_SERVICE); 

     //int iUniqueId = (int) (System.currentTimeMillis() & 0xfffffff); 

     String event = Mail_Fill_Details.Discripton; 
     String name = Mail_Fill_Details.Person_Name; 
     String mail =Mail_Fill_Details.mailString; 
     try { 
      GMailSender sender = new GMailSender("[email protected]", "xyz"); 
      sender.sendMail("Reminder of "+event+" ("+name+")" , 
        "REMINDER!! REMINDER!! REMINDER!! \n\n\nYou got a reminder about "+event+"("+name+") after 5 minutes\n\n\n", 
        "[email protected]", 
        mail); 
     } catch (Exception e) { 
      Log.e("SendMail", e.getMessage(), e); 
     } 

休息代碼是在這裏...

Intent intent = new Intent(Mail_Fill_Details.this, 
           MailAlarm.class); 
         Bundle b12 = new Bundle(); 

         b12.putString("serverresponse", Discripton); 
         b12.putString("serverresponse1", Person_Name); 
         b12.putString("serverresponce2", mailString); 

         intent.setAction("" + Math.random()); 
         intent.putExtras(b12); 
         PendingIntent displayIntent = PendingIntent 
           .getBroadcast(Mail_Fill_Details.this, 
             iUniqueId, intent, 
             PendingIntent.FLAG_UPDATE_CURRENT); 
         alarmManager.set(AlarmManager.RTC_WAKEUP, 
           calendar.getTimeInMillis() - 300000, 
           displayIntent); 
         // alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, 
         // calendar.getTimeInMillis(), 20, displayIntent); 
+0

你需要包括你在哪裏發送廣播的一部分,因爲「MailAlarm沒有被調用」看起來這可能是問題 – waqaslam

+0

@Zakaria請告訴我如何將代碼,這樣就不會被編輯。 –

+0

@waqas它正在發送,但它不再發送... –

回答

1

我認爲你應該使用AlarmManager代替set方法setRepeating方法。

am.setRepeating(type, triggerAtMillis, intervalMillis, operation); 
+0

是的,你是對的先生,但它會一再重複。我只需要重複一次。 –

+0

@VarunVishnoi然後只使用'set'方法..有一個SharedPreference爲前:「廣播」,「是」...在廣播接收器檢查是否它的「否」,然後再次設置..ELSE不設置...這個它的設置和播放方式只有兩次 -----------------或者--------------------- - 你也可以用同樣的方法檢查,當它的「真」取消報警。 – MKJParekh

+0

謝謝q ....是的,這將工作...先生,我可以得到你的郵件編號,如果你很舒服 –