0
사용자 지정 음악 플레이어 컨트롤이있어서 재생 단추를 클릭하면 서비스가 시작되고 BroadcastReceiver가 등록됩니다. 서비스는 음악을 재생하고 음악 플레이어 컨트롤에서 UI를 업데이트하는 데 사용하는 음악 세부 정보를 브로드 캐스트합니다.사용자 지정 컨트롤에서 브로드 캐스트 수신기를 등록 취소하는 위치
public class MusicPlayer extends ViewFlipper implements OnClickListener
{ 개인 브로드 캐스트 리시버 브로드 캐스트 리시버;
MusicPlayer(Context context, AttributeSet attrs)
{
//inflate the layout
}
public void onClick(View v)
{
if(v.getId() == R.id.musicplayerbtn)
{
// DO some work
// register receiver
broadcastReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent serviceIntent)
{
updatePlayer(serviceIntent);
}
};
// Register receiver
getContext().registerReceiver(broadcastReceiver, new IntentFilter(MusicService.BROADCAST));
//Start service
}
}
}
내 앱에는 여러 개의 스크린이 있으며이 컨트롤을이 스크린에 플러그인하기 만하면됩니다. 한 활동에서 다른 활동으로 이동하는 경우 첫 번째 활동의 레이아웃에있는 음악 플레이어는 더 이상 보이지 않으며 BroadcastReceiver를 등록 취소해야한다는 것을 이해해야합니다.
사용자 정의 컨트롤에서 BroadcastReceiver를 어떻게 등록 취소합니까? Activity onPause() 메서드에서 등록을 취소하지 않는 것이 좋습니다.
감사합니다. 사용자 정의 컨트롤 코드를 활동 코드와 연결하지 않을 수있는 방법이 있습니까? – Rohit