안드로이드 개발 질문/답변
(글 수 40,700)
찾아 봤더니 홈키에 대한 이벤트는 없다고들 하는데
어플을 실행 도중에 홈 키를 눌렀을때 재생되던 음악을 종료시킬수도 없는 건가요?
홈키는 종료가 아니라 어플이 안 꺼지는 건 아는데 홈키로 나가면 음악도 같이 없애 줄수 있는 방법이 없을까요??
어플을 실행 도중에 홈 키를 눌렀을때 재생되던 음악을 종료시킬수도 없는 건가요?
홈키는 종료가 아니라 어플이 안 꺼지는 건 아는데 홈키로 나가면 음악도 같이 없애 줄수 있는 방법이 없을까요??
2010.09.19 02:43:30
power 키도 마찬가진걸로 알고 있어요....
갤럭시s에 내장되어있는 비디오 플레이어에서 power키를 누르면 잠금기능이 되는데 이거 구현할려다가 한참 삽질한 기억이 있다는..
결국은 ContextMenu로 구현 했다는..-_-;;;;
포팅할때 아얘 내장 비디오 플레이어에 power키는 어플이 인지하도록 임의적으로 수정했나바요...
2010.09.19 12:53:29
onPause가 다 좋은데... 예를 들어 sms왔을때 sms 창을 열어버리면 바로 중단되겠죠...
키반응외에 다른 작용에 의해서도 음악이 중단될수 있다는점이죠...
뭐 그걸로 충분하시다면 된거지만...
power키 같은 경우는 broadcast를 수신하세요 SCREEN_OFF 를 수신하셔서 처리하시면 됩니다.
이 경우는 시간이 지나서 자연스럽게 시작하는 절전모드에도 반응하게 될테지만요....
키반응외에 다른 작용에 의해서도 음악이 중단될수 있다는점이죠...
뭐 그걸로 충분하시다면 된거지만...
power키 같은 경우는 broadcast를 수신하세요 SCREEN_OFF 를 수신하셔서 처리하시면 됩니다.
이 경우는 시간이 지나서 자연스럽게 시작하는 절전모드에도 반응하게 될테지만요....
2010.09.19 13:49:13
그냥가자님 답변 감사합니다 ㅎ 그런데 broadcast를 이용해서 어떤 식으로 해야 하나요? ㅠ
private void registerBroadCastReceiver(){
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(br, filter, null, null);
}
로 매서드를 만들어서 onPause에 넣었어도 먹히지를 않네요 ㅠ 뭔가 부족한게 있는 건가요? ㅠ
2010.09.19 14:24:50
onCreate에서
IntentFilter offfilter = new IntentFilter (Intent.ACTION_SCREEN_OFF);
registerReceiver(screenoff, offfilter);
주고
BroadcastReceiver screenoff = new BroadcastReceiver(){
public static final String Screenoff = "android.intent.action.SCREEN_OFF";
@Override
public void onReceive(Context context, Intent intent){
if(!intent.getAction().equals(Screenoff))return;
finish();
}
};
준 후에
@Override
protected void onPause()
{
super.onPause();
unregisterReceiver(screenoff);
SoundPoolClass.mpPause();
}
onDestroy가 아닌 onPause에 넣어봤는데 ㅎ 화면이 꺼지면서 소리는 꺼지는데 ㅎ 다시 power를 켜보니 ㅎ 어플 자체가 꺼져 있네요 ㅠ ㅎ
어플을 안 꺼지고 잠시 멈춤으로 하고싶은데 ㅠ 뭔가 안될까요? ㅠ
IntentFilter offfilter = new IntentFilter (Intent.ACTION_SCREEN_OFF);
registerReceiver(screenoff, offfilter);
주고
BroadcastReceiver screenoff = new BroadcastReceiver(){
public static final String Screenoff = "android.intent.action.SCREEN_OFF";
@Override
public void onReceive(Context context, Intent intent){
if(!intent.getAction().equals(Screenoff))return;
finish();
}
};
준 후에
@Override
protected void onPause()
{
super.onPause();
unregisterReceiver(screenoff);
SoundPoolClass.mpPause();
}
onDestroy가 아닌 onPause에 넣어봤는데 ㅎ 화면이 꺼지면서 소리는 꺼지는데 ㅎ 다시 power를 켜보니 ㅎ 어플 자체가 꺼져 있네요 ㅠ ㅎ
어플을 안 꺼지고 잠시 멈춤으로 하고싶은데 ㅠ 뭔가 안될까요? ㅠ
2010.09.19 14:28:46
finish 하셨으니 그렇죠 ㅡㅡㅋ
finish하는데 안닫히는게 더 이상한게 아닐까요?
SoundPoolClass.mpPause(); 이거를 finish 대신에 넣어야 될거 같습니다.
finish하는데 안닫히는게 더 이상한게 아닐까요?
SoundPoolClass.mpPause(); 이거를 finish 대신에 넣어야 될거 같습니다.
2010.09.19 14:48:36
어라 ㅎㅎㅎㅎㅎ 이젠 화면 꺼지고 노래 꺼지고 어플 살고는 됬는데 ㅎ 화면을 켜니 먹통이 되버리네요 ㅎ
같은 방법으로 sceenon을 onresume에다 넣어 줬는데 오류가 나는군요 ㅠ ㅎ
음악 플레이어가 아닌거죠? 그렇다면, Home 키를 누르거나 Back 버튼을 눌렀을 때 앱은 onPause를 타기 때문에,
onPause에서 음악 재생을 멈추시면 될것 같습니다. 질문하신 방향에 맞는지 모르겠네요.