2017-05-07 26 views
1

在我的應用程序中,我有一個按鈕,設置一個確定的時間來運行AlarmManager,我需要顯示在一個TextView中剩餘多少時間報警,我怎麼可以做到?如何知道多少時間是爲報警

注意:我的應用程序需要工作在API中15.啓動AlarmManager

按鈕。

// Alarm manager 
     Intent intent = new Intent(getActivity().getApplicationContext(), AlarmReceiver.class); 
     final PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity().getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); 
     final AlarmManager alarmManager = (AlarmManager) getActivity().getSystemService(Context.ALARM_SERVICE); 

     buttonsTimer.get(0).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, SystemClock.elapsedRealtime()+42000000, pendingIntent); 
      } 
     }); 

回答

2

使用一個變量來存儲起始時間:

long startTime = SystemClock.elapsedRealtime()+42000000; 

然後找到留在報警時,只需減去從開始時的當前時間:

long timeRemaining= startTime - System.currentTimeMillis(); 

這將使得timeRemaining包含鬧鐘熄滅之前剩餘的時間,以毫秒爲單位。然後用setText()將它設置爲TextView

+0

謝謝你,這是如此簡單,但我堅持這一點。 –

相關問題