Android 通知未更新

Android 通知未更新,android,android-notifications,Android,Android Notifications,我正在尝试更新通知,但无法更新,以下是我的代码: NotificationCompat.Builder nBuilder; RemoteViews remoteView; static NotificationManager nManager; static int NOFIY_ID = 2; static Bitmap bitmap2; static boolean isExists2; public void MakeNotification(Context context,St

我正在尝试更新通知,但无法更新,以下是我的代码:

    NotificationCompat.Builder nBuilder;
RemoteViews remoteView;
static NotificationManager nManager;
static int NOFIY_ID = 2;
static Bitmap bitmap2;
static boolean isExists2;


public void MakeNotification(Context context,String Name,String AlbumART) {
    if(Added_RvHolders.isPlaying)
        Added_RvHolders.mMediaPlayer.stop();

    if(!AlbumART.equals("")) {
        Uri sArtworkUri = Uri
                .parse("content://media/external/audio/albumart");
        Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, Long.parseLong(AlbumART));
        try {
            bitmap2 = MediaStore.Images.Media.getBitmap(
                    context.getContentResolver(), albumArtUri);
            isExists2 = true;
        } catch (IOException e) {
            isExists2 = false;
        }
    } else {
        isExists2 = false;
    }

    if(IsFirstTime) {
        nBuilder = new NotificationCompat.Builder(context)
                .setAutoCancel(true)
                .setOnlyAlertOnce(true)
                .setSmallIcon(R.mipmap.small_app_icon)
                .setOngoing(true);
    remoteView = new RemoteViews(context.getPackageName(), R.layout.music_notification);
    }
    if(isExists2)
    remoteView.setImageViewBitmap(R.id.AlbumART, bitmap2);
    else
    remoteView.setImageViewResource(R.id.AlbumART,R.mipmap.main_app_icon);
    remoteView.setTextViewText(R.id.TrackTitle,Name);


    //set the button listeners
    setListeners(remoteView, context);
    nBuilder.setContent(remoteView);

    nManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
    nManager.notify(NOFIY_ID, nBuilder.build());

}
出了什么问题:

在选择另一首歌曲时,它没有被更新,在“OnClick”方法中,我传递了新的名称/封面艺术,但它没有更新,即使我试图“取消”通知并再次发出,仍然是在相同的信息上

我在期待什么


当按下一首新歌时,通知会被更新。

除了使用同一个构建器外,您不能将构建器设置为静态,或者remoteview,删除静态解决了我的问题。

可能重复Nope,它不是重复的,因为我正在按照答案所说的做,您的代码显示您正在重用NotificationCompat.Builder实例并创建一个新的Notification实例。另一个问题的答案建议使用相同的通知实例。所以在我看来,这可能是一个复制品。请注意我评论中的“可能”一词:)这很好。因此,这确实不是重复。你为什么不自己写答案呢?它可能对其他有同样问题的人有用。您可能不应该将这么多对象声明为静态对象,也许可以像这样重新审视您的设计。。是有问题的。为了避免任何误解(我不是母语人士):让同一个构建器先创建一个通知,然后再创建另一个通知是可以的,但我不应该使用静态变量?有些变量需要声明为静态的,比如MediaPlayer,正如一些人所说的“它将创建实例”,如果你尝试使用MediaPlayer实例停止并播放另一首歌曲,它将恢复上一首歌曲并播放新歌曲,要解决这个问题,你需要将其声明为静态(检查我之前的问题,你就会明白),我不能用专业的方式回答你,我还是一个初学者。没关系,我只是想知道“旁边”-就像我说的,我不是母语人士,一种解释是我可能永远不会重用构建器,另一种解释是我第一次评论时的解释。翻译问题,而不是编码问题;)哦,对于“旁边”,你给我的链接建议使用同一个构建器来解决提问者问题,所以“旁边/与”“这意味着,如果从生成器中找到,您还需要删除static:)。