定义内部类广播继承BroadcastReceiver
class AudioBroadCastReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { Toast.makeText(AudioPlayerActivity.this,"广播接收到了",Toast.LENGTH_LONG).show(); } }
动态注册:
public void initData(){ //新建一个BroadCast receiver =new AudioBroadCastReceiver(); //添加意图过滤器 intentFilter= new IntentFilter(); intentFilter.addAction("com.mobile.mobileplayer.audiao_service");//广播标识 registerReceiver(receiver,intentFilter); }
Activity onDestroy()销毁广播否则会报错:
@Override protected void onDestroy() { super.onDestroy(); //注销广播 unregisterReceiver(receiver); }
在服务里发送广播
new Thread( ){ @Override public void run() { if(mediaPlayer.isPlaying()){ Intent intent =new Intent(); intent.setAction("com.mobile.mobileplayer.audiao_service");//广播标识要一致 if(mediaItem!=null){ intent.putExtra("music_name",mediaItem.getName()); intent.putExtra("duration",mediaItem.getDuration()); } sendBroadcast(intent); } } }.start();