1

建設自己的鬧鐘應用爲Android當前的時間,並有一些麻煩通知。我想從通知中設置午睡時間,所以我建立通知用行動時得到通知操作點擊

public class MainActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    addNotification(); 
} 

    private void addNotification() { 
     SimpleDateFormat sdfHour = new SimpleDateFormat("HH"); 
     SimpleDateFormat sdfMinute = new SimpleDateFormat("mm"); 
     int timeHour = Integer.parseInt(sdfHour.format(getInstance().getTime())); 
     int timeMinute = Integer.parseInt(sdfMinute.format(getInstance().getTime())); 

     Intent a15 = new Intent(AlarmClock.ACTION_SET_ALARM); 
     a15.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap"); 
     a15.putExtra(AlarmClock.EXTRA_HOUR, timeHour); 
     a15.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute+15); 
     a15.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
     PendingIntent nap15 = PendingIntent.getActivity(this,1,a15,PendingIntent.FLAG_UPDATE_CURRENT); 

     Intent a30 = new Intent(AlarmClock.ACTION_SET_ALARM); 
     a30.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap"); 
     a30.putExtra(AlarmClock.EXTRA_HOUR, timeHour); 
     a30.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute+30); 
     a30.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
     PendingIntent nap30 = PendingIntent.getActivity(this,2,a30,PendingIntent.FLAG_UPDATE_CURRENT); 

     Intent a45 = new Intent(AlarmClock.ACTION_SET_ALARM); 
     a45.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap"); 
     a45.putExtra(AlarmClock.EXTRA_HOUR, timeHour); 
     a45.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute + 3); 
     a45.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
     PendingIntent nap45 = PendingIntent.getActivity(this,3,a45,PendingIntent.FLAG_UPDATE_CURRENT); 

     NotificationCompat.Builder mBuilder = (NotificationCompat.Builder) new NotificationCompat.Builder(this) 
       .setSmallIcon(R.drawable.ic_alarm_white_24dp) 
       .setContentTitle("Take a nap.") 
       .setContentText("Select nap time.") 
       .addAction(R.drawable.ic_alarm_add_white_24dp, "15min",nap15) 
       .addAction(R.drawable.ic_alarm_add_white_24dp, "30min",nap30) 
       .addAction(R.drawable.ic_alarm_add_white_24dp, "45min",nap45); 


     // Add as notification 
     NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 
     manager.notify(0, mBuilder.build()); 

    } 

但是當我選擇15分鐘的鬧鐘設置爲從時間15分鐘打盹的時候,當我創建的,而不是當前系統時間的通知。例如,如果我在下午5時運行的應用程序,和10分鐘(下午5:10)後,我選擇從通知它的設置報警下午5點行動+ 15不是下午5:10 + 15,因此,有可能當我點擊獲取當前時間行動通知?我需要使用什麼?

回答

0

你可以從你的SimpleDateFormat得到按小時和分鐘當前時間:

SimpleDateFormat sdfHour = new SimpleDateFormat("HH"); 
SimpleDateFormat sdfMinute = new SimpleDateFormat("mm"); 
int timeHour = Integer.parseInt(sdfHour.format(getInstance().getTime())); 
int timeMinute = Integer.parseInt(sdfMinute.format(getInstance().getTime())); 

所以這將是:

Intent a15 = new Intent(AlarmClock.ACTION_SET_ALARM); 
     a15.putExtra(AlarmClock.EXTRA_MESSAGE, "Nap"); 
     a15.putExtra(AlarmClock.EXTRA_HOUR, timeHour); 
     a15.putExtra(AlarmClock.EXTRA_MINUTES, timeMinute + 15); 
     a15.putExtra(AlarmClock.EXTRA_SKIP_UI, true); 
     PendingIntent nap15 = PendingIntent.getActivity(this,1,a15,PendingIntent.FLAG_UPDATE_CURRENT); 
+0

不會爲我工作。仍然從第一次應用程序運行得到當前時間,並且當我點擊通知時間的操作時不會更新到當前值 – Mich

+0

請確保在點擊操作按鈕時(而不是在活動開始時)實例化int timeHour和int timeMinute – buradd

+0

現在我都實例化時瓦魯爾足球俱樂部創建通知,我怎麼能在通知在的addAction(INT,CharSequence中,的PendingIntent)instatiating都值。在哪裏需要安置價值觀來做對嗎? – Mich