2017-05-07 25 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

谢谢你,这是如此简单,但我坚持这一点。 –

相关问题