Android-在通知中播放/暂停更新远程视图

Android-在通知中播放/暂停更新远程视图,android,android-notifications,remoteview,Android,Android Notifications,Remoteview,我试图通过帧布局在通知中实现播放/暂停按钮,但当我单击暂停mediaPlayer时,它不会更新以在通知中显示播放按钮。如何更新视图 RemoteViews nv = new RemoteViews(getPackageName(), R.layout.notificationLayout); Intent switchIntent = new Intent("com.example.android.ACTION_PLAY"); PendingIntent pendingSwitchInten

我试图通过帧布局在通知中实现播放/暂停按钮,但当我单击暂停mediaPlayer时,它不会更新以在通知中显示播放按钮。如何更新视图

RemoteViews nv = new RemoteViews(getPackageName(), R.layout.notificationLayout);
 Intent switchIntent = new Intent("com.example.android.ACTION_PLAY");
 PendingIntent pendingSwitchIntent = PendingIntent.getBroadcast(this, 100, switchIntent, 0);
 nv.setOnClickPendingIntent(R.id.pause, pendingSwitchIntent);
广播接收机类

@Override

public void onReceive(Context context, Intent intent) {

            String action = intent.getAction();

            if(action.equalsIgnoreCase("com.example.app.ACTION_PLAY")){
                if(mp.isPlaying())
                {
                    nv.setViewVisibility(R.id.pause, View.INVISIBLE);
                    nv.setViewVisibility(R.id.play, View.VISIBLE);
                    mp.pause();
                }
                else
                {
                    nv.setViewVisibility(R.id.play, View.INVISIBLE);
                    nv.setViewVisibility(R.id.pause, View.VISIBLE);
                    mp.start();
                }

            }
        }  
试试看

@Override

public void onReceive(Context context, Intent intent) {
Notification notification = null;
        String action = intent.getAction();

        if(action.equalsIgnoreCase("com.example.app.ACTION_PLAY")){
            if(mp.isPlaying())
            {
                notification.contentView.setViewVisibility(R.id.pause, View.INVISIBLE);
                notification.contentView.setViewVisibility(R.id.play, View.VISIBLE);
                mp.pause();
            }
            else
            {
                notification.contentView.setViewVisibility(R.id.play, View.INVISIBLE);
                notification.contentView.setViewVisibility(R.id.pause, View.VISIBLE);
                mp.start();
            }

        }
    }  

您可以在前台再次发布带有另一个图标的新的
通知
,以刷新远程视图

remoteview
可以重复使用,但
startForeground(通知ID、通知)



我认为这是因为
通知
通过
包裹
与系统通知通信,内容已被克隆到新实例。

如果符合此条件,请尝试else if
else if(!mp.isplay())
而不是else@Abhishek即使媒体播放器暂停,它仍会显示“暂停”按钮。它不起作用。是否有方法在广播接收器类中获取相同的通知对象?如何在接收器类中获取通知对象?如果
接收器
是您的内部类,您可以轻松访问它。或者您可以设置媒体服务的回调,以发布具有新播放状态的新通知。有一个通用的前台通知指南。通过这种方式,您可以将
通知保存到您喜欢的任何位置。