2014-03-28 2 views
1

백그라운드에서 실행중인 서비스를 어떻게 중지시킬 수 있습니까? 뒤로 및 홈 버튼 누름을 사용하여 수행 할 수있는 방법이 있습니까KeyCode, KeyEvent 작동하지 않음

키 이벤트를 사용하려고했지만 여전히 작동하지 않습니다. 여기에서 내 코드를 확인할 수 있습니다 ...

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if ((keyCode == KeyEvent.KEYCODE_HOME)) {   
     stopBackgroundAudio();// background services 
     return true; 
    } 
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {   
     stopBackgroundAudio(); 
     return true; 
    } 
    if ((keyCode == KeyEvent.KEYCODE_MENU)) {    
     stopBackgroundAudio(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 

} 

서비스를 중지 하시겠습니까?

+0

이 키는 Android OS에서 처리합니다. 하지만 리플렉션을 사용하여 사용할 수 있습니다. http://stackoverflow.com/a/31872330/3496570 – Nepster

답변

0
@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) { 

     switch(keyCode) 
     { 
     case KeyEvent.KEYCODE_HOME: 
     stopBackgroundAudio();// background services 
      return true; 
     case KeyEvent.KEYCODE_BACK: 
     stopBackgroundAudio(); 
      return true; 
     case KeyEvent.KEYCODE_MENU: 
     stopBackgroundAudio(); 
      return true; 


     } 

     return super.onKeyDown(keyCode, event); 
    } 

나는 확실히 당신의 서비스 아니다는 바인드 또는 언 바인드 서비스, 그것이 문제가있을 수 있습니다보다 바인딩 해제 서비스를하고있는 경우 또한 적절한 구현이보다 바인드 서비스 인 경우!

+0

홈 및 메뉴 작업 안 함 – SourabhTech

+0

안녕하세요. return super.onKeyDown (keyCode, event); 반환 거짓 대신에; 대답이 업데이트되었습니다 –

+0

작동하지 않습니다 .... – SourabhTech

1

뒤로 및 집에서는 해당 API를 사용하지 않습니다. back 키는 재정의 할 수있는 backButtonPressed 함수를 통해 제공됩니다. 홈 버튼이 계속 나타나지 않습니다. 앱이 백그라운드로 밀려납니다.

또한 배경에 넣을 때 오디오를 멈추고 싶으면 onPause에서 멈추십시오.

+0

하나의 활동에서 다른 활동으로 이동하는 동안 onPause가 호출되기 때문에 문제가 해결되지 않습니다 – TheMohanAhuja

+0

사실,하지만 그는 필요하다고 지정하지 않았습니다. –

+0

맞아요. 제 친구지만 집에있는 버튼이나 뒤로 버튼에서만 서비스를 중지하고 싶다고 분명히 말했습니다. – TheMohanAhuja