【问题标题】:Getting a date from the next Alarm从下一个警报中获取日期
【发布时间】:2016-03-07 08:48:20
【问题描述】:

我一直在尝试把结果转成

AlarmManager m = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
String next=m.getNextAlarmClock().getTriggerTime();

变成一个长变量(我想要来自纪元的毫秒),事情是(显然)我不能直接转换它,因为变量next只包含有关星期几和闹钟时间的信息.

我需要手动添加日期中缺少的所有信息吗?或者有什么方法可以做到吗?

我也试过用

 AlarmManager m = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
 long next=m.getNextAlarmClock().getTriggerTime();

但无济于事,因为它给了我一个空指针异常。

【问题讨论】:

    标签: java android date time alarm


    【解决方案1】:

    getTriggerTime() 返回 long 而不是 Long。参考this

    AlarmManager alarmManager = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE);
    long nextAlarmTime =alarmManager.getNextAlarmClock().getTriggerTime();
    
    Date nextAlarmDate = new Date(nextAlarmTime);
    System.out.println(nextAlarmDate);
    

    这里,返回值是警报将要触发的时间。此值为 UTC 挂钟时间,以毫秒为单位。

    【讨论】:

    • 非常感谢,这是一个打字错误,在我的程序中我用了很长时间。无论如何,我再次尝试使用您的代码,但它引发以下异常/com.example.almudena.mad_btv1 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.almudena.mad_btv1, PID: 26198 java.lang.NullPointerException: Attempt to invoke virtual method 'long android.app.AlarmManager$AlarmClockInfo.getTriggerTime()' on a null object reference
    猜你喜欢
    • 1970-01-01
    • 2017-09-17
    • 2016-03-24
    • 1970-01-01
    • 2019-11-12
    • 2010-12-07
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多