Android:不断更新通知区域中的文本

时间:2014-09-26 19:49:05

标签: android notifications

正如理查德在这个问题中所说的那样> Possible to continuously update text in the notification area?,我在这里有同样的问题  我想更新通知区域中的文本 这个问题得到了回答和接受,但答案对我没有帮助 它将动态创建文本作为位图,并将其设置为通知的小图标 但正如Richard评论的那样,setSmallIcon的图像必须在包中预定义。没有能力即时编辑它们。

请告诉我正确的方法来做这些事情。

2 个答案:

答案 0 :(得分:0)

更新通知非常简单。 首先,当你创建它时,你必须用id创建它。

NotificationManager mNotificationManager =(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
// Sets an ID for the notification, so it can be updated
int notifyID = 1;
mNotifyBuilder = new NotificationCompat.Builder(this)
    .setContentTitle("Title")
    .setContentText("Text")
    .setSmallIcon(R.drawable.ic_notify);
mNotificationManager.notify(
            notifyID,
            mNotifyBuilder.build());

现在要更新您的通知,您只需要使用旧ID通知新通知,这将更新(您不需要重置您不想更新的参数)。

  mNotifyBuilder.setContentText(setContentText("New Text")
  mNotifyBuilder.setSmallIcon(R.drawable.ic_new_notify);
    //this update your notification
    mNotificationManager.notify(
                notifyID,
                mNotifyBuilder.build());

答案 1 :(得分:0)

我尝试制作一个,但它有一个缺点是,它在通知抽屉中有一个空通知,

public static int when = 0;
private void generateNotification(Context context) {
    Log.i(TAG, "generateNotification");
    Intent notificationIntent = new Intent(context, MainActivity.class);
    PendingIntent pIntent = PendingIntent.getActivity(
            this.getApplicationContext(), 0, notificationIntent,
            PendingIntent.FLAG_UPDATE_CURRENT);

    NotificationCompat.Builder mNotification = new NotificationCompat.Builder(
            this)
            // .setContentTitle("AppName")
            // .setContentText("Message For Notification Drawer")
            // .setSound(soundUri)
            // .setDefaults(Notification.DEFAULT_SOUND)
            // .setVibrate(new long[] { 1000, 1000 })
            // .addAction(R.drawable.ic_launcher, "View", pIntent)
            // .addAction(0, "Remind", pIntent)
            // .setNumber(fCount)
            // .setWhen(when)
            .setSmallIcon(R.drawable.ic_launcher)
            .setTicker(Integer.toString(when)) // Set String you want
            .setAutoCancel(true)
            .setContentIntent(pIntent);

    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);

    // notificationManager.notify(when, mNotification.build());
    notificationManager.notify(1, mNotification.build());
    when++;
}