2014-08-29 68 views
0

我想在特定時間發送通知。以下是我的代碼。目前,我在啓動應用程序時只收到通知,但在指定時間沒有收到通知。你能幫我理解我做錯了什麼嗎?如何在特定時間發送通知?

NotificationCompat.Builder mBuilder = 
      new NotificationCompat.Builder(this) 
      .setSmallIcon(R.drawable.ic_launcher) 
      .setContentTitle("My notification") 
      .setContentText("Trainieren sie jetzt!") 
      .setAutoCancel(true); 
    Intent resultIntent = new Intent(this, MainActivity2.class); 

    AlarmManager alarmManager =(AlarmManager)getSystemService(ALARM_SERVICE); 



    PendingIntent resultPendingIntent = 
     PendingIntent.getActivity(
     this, 
     0, 
     resultIntent, 
     PendingIntent.FLAG_UPDATE_CURRENT); 


    Calendar cal = Calendar.getInstance(); 
    cal.set(Calendar.HOUR_OF_DAY, 12); 
    cal.set(Calendar.MINUTE, 54); 
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), 24*60*60*1000, resultPendingIntent); 



    mBuilder.setContentIntent(resultPendingIntent); 
    int mNotificationId = 001; 
    NotificationManager mNotifyMgr = 
      (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
    mNotifyMgr.notify(mNotificationId, mBuilder.build()); 

感謝您的幫助!

+0

你必須設置通知,你正在設置時間... – Umair 2014-08-29 11:04:11

+1

你真的想重複報警嗎? – Opiatefuchs 2014-08-29 11:04:56

+0

根據我的想法,用廣播接收機設置重複報警不是一個瓶頸。只有定時器選項可能變得非常麻煩。如果喚醒鎖在服務中正確實施,則效率會更高。 – Skynet 2014-08-29 11:11:44

回答

1

您需要添加:

@Override 
public void onReceive(Context context, Intent intent) { 
    // Toast.makeText(MainActivity.con, "Hello from alarm", 1).show(); 


    // System.out.println("Hello from Alarm"); 
    context.startService(new Intent(context, NotificationService.class)); 

} 

在上面的例子裏,我指揮的過程中我的服務類來處理我的通知,管理喚醒鎖定和後臺服務的實現。如果您未實施服務,則只需在onRecieve方法中顯示您的通知。

請看看here它具有Alarm類的完整實現。

相關問題