Android通知在角落里显示一些奇怪的日期

时间:2012-07-29 04:06:13

标签: java android

我不确定为什么当我显示通知时右上角有一些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);
    }

截图:

enter image description here

3 个答案:

答案 0 :(得分:0)

什么是SystemClock的事情?使用System.currentTimeMillis()或System.nanoTime()?

有什么问题

另外,尝试编写一个toClock()函数,将其转换为12hr / 24hr格式的时间字符串。再次,当我回到办公室时,星期一更多(样本代码可用)。

答案 1 :(得分:0)

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

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

答案 2 :(得分: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);
试试吧!