通知值是否未从较旧的值更新?

时间:2013-05-25 10:22:31

标签: android performance android-intent notifications android-notifications

我正在尝试在我的应用中显示通知... 我宣布一个示例文本作为标题和正文,以检查它是否正在运行。它是完美的。 然后,当我改变字符串值(标题,正文)。它没有更新,它仍然显示旧的示例文本。 我在互联网上搜索了解决方案。有人说添加flag_update_current会解决。  我做了,但没用。 这是代码..我用过。

public void Notify(){
    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    String mbody = "Mode: General";
    String title = "messager On";
    Notification n = new Notification(R.drawable.ezmsgr,mbody,System.currentTimeMillis());
    n.setLatestEventInfo(this, title, mbody, pi);
    n.defaults = Notification.DEFAULT_LIGHTS;
    n.flags = Notification.FLAG_ONGOING_EVENT;
    nm1.notify(NID,n);
}

我也尝试将新值赋予通知的唯一ID。它没有更新。

1 个答案:

答案 0 :(得分:0)

一些事情:

  1. 每次要更新通知的外观时,都需要再次致电notify()

  2. 您正在使用一堆弃用的API来构建通知。相反,您希望使用Notification.Builder,如:

  3. Notification n = new Notification.Builder(this)
            .setSmallIcon(R.drawable.ezmsgr)
            .setContentTitle(title)
            .setContentText(mbody)
            .setContentIntent(pi)
            .setDefaults(Notification.DEFAULT_LIGHTS)
            .setOngoing(true) // ugh, why are you doing this?
            .build();
    nm.notify(NID, n);
    

    每次要更新文本时再次呼叫notify()。您可以重复使用相同的构建器或创建新构建器。