2011-10-09 121 views
1

我有一个自定义通知,它始终可供用户使用(不是针对特定事件的通知)并应提供最新数据。 有没有办法知道通知屏幕显示,所以我可以在这个时候更新我的通知数据,而不是定期轮询新数据?有没有办法知道自定义通知即将显示?

感谢

回答

0

你应该只调用NotificationManager的通知方法,当你想要做一个更新您的通知的ID,这只是你应该做更新您的通知的方式,它不叫轮询新每次都有通知。你在android上使用默认的通知系统吗?

+0

嗨,我的意思是如果我有一个不可取消的通知,显示应用程序的状态,而不是单个事件通知 – Oren

+0

感谢您的回答。然而,我的意思是,我是否有办法知道通知即将显示(例如用户拉下通知区域)? – Oren

+0

我不认为你可以做到这一点.. – Rejinderi

0

使用通知管理器的详细信息:

设置您的初始消息。然后执行您的第一个通知:

notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0); 
    Notification notification = new Notification(icon, tickerText, when); 
    notification.flags = notification.flags | Notification.FLAG_ONGOING_EVENT; 
    notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 
    notificationManager.notify(GC.DATABASE_NOTIFICATION_ID, notification); 

将contentText的文本更改为新信息。然后使用以下内容更新通知:

notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent); 
    notificationManager.notify(GC.DATABASE_NOTIFICATION_ID, notification); 

如果通知栏已展开,则会更新消息区域。无需关闭并重新打开通知栏。

显示的文本区域在大小上是水平的。没有太多的文字可以显示。这是开发者指南。

如果要显示比正常下拉显示中的进度条或更多文本,则必须自定义通知。请参阅开发人员指南。这非常直截了当。

+0

我在我的项目中使用全局常量类。 GC.DATABASE_NOTIFICATION_ID是类中的一个公共整数值。它被定义为'public final static int GC.DATABASE_NOTIFICATION_ID = 101; –

相关问题