2010-06-12 3 views
1

나는 매초 경고음을 발생시키는 앱을 개발 중입니다. 홈 버튼을 눌렀을 때 프로그램을 닫고 경고음을 멈추기를 원합니다. 지금은 프로그램을 닫지 만 삐 소리가납니다.Android 카운터 중지 및 미디어 플레이어 폐기

내가 뭘 잘못하고 있니? 내가 홈 버튼을 누르면 때

 if ((keyCode == KeyEvent.KEYCODE_HOME)) { 
     isdone = true; 
     mp.release(); 
     counter.cancel(); 
     finish(); 
    } 

답변

1

가 나는 프로그램을 종료하고 경고음을 중지합니다.

응용 프로그램 코드에서 홈 버튼을 가로 챌 수 없습니다 - 죄송합니다!

0

홈 버튼을 가로 챌 수 없지만 응용 프로그램 시작 활동을 홈 인 텐트/기본 홈 활동으로 만드는 것이 좋습니다. 당신의 XML 매니페스트에서,이 같은 것 : 사용자가 홈 버튼을 누를 때

<intent-filter> 
    <action android:name="android.intent.action.MAIN"/> 
    <category android:name="android.intent.category.LAUNCHER"/> 
    <category android:name="android.intent.category.HOME"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
</intent-filter> 

그래서, 앱의 시작 활동에 사용자를 이끌 것입니다, 당신은 다른 그를 리디렉션 할 수 여기에서 이전 활동, 즉 사용자의 상태를 미리 저장합니다. 위에서 언급 한 활동에서 경고음이 발생하는 곳에서 onPause 또는 onWindowFocusChanged에 중지 명령을 배치해야합니다.

위의 접근 방식은 응용 프로그램 논리/비즈니스 사례와 배포하려는 환경에 따라 다르지만 경우에 따라 다릅니다.

우리는 앱이 항상 번들로 제공되고 기기와 함께 배포되는 애플리케이션 (홈 버튼 처리)에서이 접근 방식을 사용했습니다. 어쨌든 우리는 장치 설정을 완전히 제어 할 수 있습니다. 자신의 활동을 기본 홈 활동으로 설정하면 사용자는 처음에 활동이 홈 인 텐트 (기본 Android 홈 또는 앱 활동)를 처리해야하는 질문과 함께 옵션 화면을 얻게됩니다. 그런 다음 사용자가 선택할 수 있으며 나중에 다시 묻지 않고이 활동을 기본 활동으로 사용할 체크 박스를 선택할 수 있습니다.

일반 시장 용 일반 앱의 경우 이는 불편 함이 적고 좋은 스크린 플로우/사용자 경험이 아니기 때문에 최선의 방법은 아닙니다. 완전하게 제어 할 수있는 앱의 경우 적절한 해결 방법 일 수 있습니다.

홈 버튼을 캡처하려면 android.policy.jar에있는 PhoneWindowManager.java 클래스의 Android OS를 수정해야합니다. 그러나 이는 기기를 완벽하게 제어하고 앱을 기기와 함께 묶어 두거나 기기를 사용자에게 제공하고 어떤 ROM을 배포할지 제어하는 ​​내부 애플리케이션 인 경우에만 의미가 있습니다. http://www.anddev.org/home_menu_button-t10232.html

0

당신이 홈 버튼을 누르면 때 호출 활동의 onPause() 방법은되지 않습니다

의 홈 버튼에 대한 자세한 링크와 함께 유용한 논의도있다?

카운터를 죽일 수 있습니다. 너 자신에 의해 활동을 죽이지 마라, 시스템은 적절한 때 그것을 위해 당신을 위해 그것을 할 것이다.

관련 문제