0

我不知道为什么当我显示通知时,右上角会显示一些 1/4/70 日期?那是什么?我该如何摆脱它?

代码:

public static void showNotification(int id, String message, String title, String body)
    {
        int drawable = 0;
        switch (id)
        {
            case NOTIFICATION_NEW_MAIL:
                drawable = R.drawable.ic_notify_mail;
                break;

            case NOTIFICATION_AVAILABLE_TRIPS:
                drawable = R.drawable.ic_notify_trip;
                break;
        }

        NotificationManager notifyManager = (NotificationManager)MyApplication.Me.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notification = new Notification(drawable, message, SystemClock.elapsedRealtime() + 1000);
        notification.defaults |= Notification.DEFAULT_SOUND;

        Intent notificationIntent= new Intent(MyApplication.Me, MailListActivity.class);
        switch (id)
        {
            case NOTIFICATION_NEW_MAIL:
                notificationIntent = new Intent(MyApplication.Me, MailListActivity.class);
                break;

            case NOTIFICATION_AVAILABLE_TRIPS:
                notificationIntent = new Intent(MyApplication.Me, TripListActivity.class);
                break;
        }

        PendingIntent contentIntent = PendingIntent.getActivity(MyApplication.Me, 0, notificationIntent, 0);
        notification.setLatestEventInfo(MyApplication.Me, title, body, contentIntent);

        notifyManager.notify(id, notification);
    }

截屏:

在此处输入图像描述

4

3 回答 3

0

SystemClock 是什么东西?使用 System.currentTimeMillis() 或 System.nanoTime() 有什么问题?

另外,尝试编写一个 toClock() 函数,将其转换为 12 小时/24 小时格式的时间字符串。再一次,周一我回到办公室时会更多(提供示例代码)。

于 2012-07-29T04:08:14.667 回答
0

该通知构造函数显然已被弃用,但无论如何,该构造函数中的最后一个参数何时应该在 unix time 中引用创建通知的时间。SystemClock.getEllapsed 时间返回自系统启动以来的时间量http://developer.android.com/reference/android/os/SystemClock.html。例如,在您的情况下,您说通知是最近创建的,但在 unix 时间,您说您真的接近 1970 年。请改用 System.getCurrentTimeMillis() 。

编辑:接近 1970 年,我的意思是 Unix 时间从 1970 年初开始以毫秒为单位。所以如果你说 0 毫秒,你说的是 1 月 1 日。如果你通过 86,400,000 毫秒(一天中的毫秒),你说的是 1 月 2 日, 1970。通过传入自启动以来经过的时间,它可能会报告您从 1970 年 1 月 1 日开始的一两天。请参阅http://en.wikipedia.org/wiki/Unix_time

于 2012-07-29T04:30:16.583 回答
0

我认为你的手段是:

    Calendar canlender = Calendar.getInstance();
    canlender.setTimeInMillis(System.currentTimeMillis());
    canlender.add(Calendar.MILLISECOND, 1000);
    long TimeInMillised = canlender.getTimeInMillis();
    Notification notification = new Notification(drawable, message, TimeInMillised);

尝试一下!

于 2012-07-29T05:26:57.033 回答