在AndroidManifest.xml里注册一个广播接受类


<receiver android:name=".MainActivity$Receive">
</receiver>
2、定义广播接受类

class Receive extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
switch (action) {
case "play":
if (mediaPlayer.isPlaying()) {
mediaPlayer.pause();
play.setImageDrawable( getResources().getDrawable( R.drawable.play ) );
remoteViews.setImageViewResource( R.id.nPlay, R.drawable.play );
notification.bigContentView=remoteViews;
manager.notify( 1, notification ); //notify可以直接更新通知Notification
} else {
mediaPlayer.start();
play.setImageDrawable( getResources().getDrawable( R.drawable.pause ) );
remoteViews.setImageViewResource( R.id.nPlay, R.drawable.pause );
notification.bigContentView=remoteViews;
manager.notify( 1, notification ); //notify可以直接更新通知Notification
}
break;
case "lastSong":

break;
case "nextSong":

break;

}
}
}
3、在onCreate()方法里启用广播接收器,在onDestroy()方法里关闭广播接收器

//开启广播接收器:不能在sendNotification里注册,因为该方法在监听方法里注册,会造成多次执行onReceiver方法情况
receive = new Receive();
IntentFilter filter = new IntentFilter();
filter.addAction("play"); //设置广播接收器监听的Action
registerReceiver(receive, filter);

@Override
protected void onDestroy() {
super.onDestroy();
//关闭广播接收器
unregisterReceiver( receive );
}
————————————————

原文地址:https://www.cnblogs.com/hyhy904/p/11414313.html