이러한 경우에는 다음과 같은 방식을 사용한다.
1. BroadcastReceiver클래스 추가
class MediaVolumeChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean hasWindowFocus = %특정_Activity%.this.hasWindowFocus();
// 현재 activity의 window에게 focus가 없는 경우의 처리
//
// 참고로, 키입력에 의해 이동하는 focus가 아니라 window들 중 f/g에 있는 window가
// 어떤 것인지를 구분하기위한 focus이다.
// 즉, 안드로이드 플랫폼에서 띄우는 전원종료와 같은 Dialog가 f/g에 있는 경우에 해당 값은
// false이고, 해당 activity의 window가 f/g에 있다면 true이다.
if (hasWindowFocus == false) {
// TODO: 종료팝업이 떠 있는 경우에 volume UI 업데이트 처리
}
}
}
2. MediaVolumeChangeReceiver mMediaVolChgReceiver;
3. BroadcastReceiver 등록
getApplicationContext().registerReceiver(mMediaVolChgReceiver, new IntentFilter("android.media.VOLUME_CHANGED_ACTION"));
4. BroadcastReceiver 등록 해제
getApplicationContext().unregisterReceiver(mMediaVolChgReceiver);

댓글 없음:
댓글 쓰기