2012-09-21 3 views
0

응용 프로그램이 백그라운드에서 실행되는 것을 허용하고 싶지 않습니다. 사용자가 Android 기기의 홈 버튼을 누르면 현재 활동이 완료되어야합니다.android의 현재 활동 닫기 장치의 홈 버튼 클릭

또는 응용 프로그램이 다시 시작될 때 응용 프로그램이 포 그라운드에 있다는 것을 알고 싶습니다.

내가 매니페스트 파일에 < 응용 프로그램 > 태그에 수신기 만든 : 아직도이 수신기가 호출 점점되지

<receiver 
     android:name=".HomeKeyReceiver" 
     android:enabled="true" 
     android:exported="true" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

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

. 이 수신기가 호출되면 응용 프로그램을 닫을 수 있습니다.

+0

답변을 확인하십시오 : http://stackoverflow.com/a/4784134/1434631 그리고 또한 읽어보십시오 : http://stackoverflow.com/questions/2079691/overriding-the-home-button-how-do -i-get-the-choice-of-the-choice – Nermeen

답변

1

나는이에 대한 방법은 같다 발견 ,

사용자가 홈 버튼을 누르면 현재 활동의 일시 중지 메소드가 호출됩니다.

두 번째 활동이 백그라운드에서 실행 된 후 다른 활동이 열려 있지 않으면 (전역 불린 변수를 사용함) 모든 활동을 닫을 메시지를 브로드 캐스트합니다.

어떤 활동이 열려있어 그 수신기에서 닫힙니다.

나를 위해 작동합니다. 희망 그래서 그것은뿐만 아니라 당신을 도울 수있다.

0
@Override 
protected void onUserLeaveHint() { 
    super.onUserLeaveHint(); 
    finish(); 
} 

그리고 그것은 하나의 활동이기 때문에 당신이 onPause(), onStop()onResume()와 함께 일할 수 있습니다. 밖으로 onUserLeaveHint()Activity 클래스의

0

점검 .. 문서는 활동이 사용자 선택의 결과로 배경으로 이동하려고 할 때

이 활동 수명주기의 일환으로 호출했다.

onUserInteraction()도 참조하십시오. 당신은 단지 배경에 실행하지 않는 활동을 강제로, 모든 시간을 다시 만들 수 찾고 있다면

+1

이 코드를 확인했지만 다른 활동으로 이동할 때도 호출됩니다. –

0

, 당신은 이동 중지 메소드를 오버라이드 (override) 할 필요가 :

enter code here 

protected void onStop() { 
    super.onStop(); 
    if (!isFinishing()) { 
     finish(); 
    } 
} 
+0

답변 해 주셔서 감사합니다.하지만 여러 활동이있는 신청서를 제출하고 싶습니다. –