Android-在通知中播放/暂停更新远程视图
我试图通过帧布局在通知中实现播放/暂停按钮,但当我单击暂停mediaPlayer时,它不会更新以在通知中显示播放按钮。如何更新视图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
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、通知)更改RemoteView的内容后,应调用代码>
我认为这是因为通知
通过包裹
与系统通知通信,内容已被克隆到新实例。如果符合此条件,请尝试else ifelse if(!mp.isplay())
而不是else@Abhishek即使媒体播放器暂停,它仍会显示“暂停”按钮。它不起作用。是否有方法在广播接收器类中获取相同的通知对象?如何在接收器类中获取通知对象?如果接收器
是您的内部类,您可以轻松访问它。或者您可以设置媒体服务的回调,以发布具有新播放状态的新通知。有一个通用的前台通知指南。通过这种方式,您可以将通知保存到您喜欢的任何位置。