2013-03-31 1 views
0

나는 2.2.2에 응용 프로그램을 개발하고 화면의 공백 등 사용자 프레스 '가정'활동 라이프 사이클 - 일시 정지를 차별화 할 필요가

이의 대부분은 잘 때 어떤 조치를 취할 필요가있어 발생합니다 화면이 비어있는 경우 onPause()를 호출 한 다음 unRank()에 onResume()을 입력하고 집이 눌러져 있으면 onPause(), onStop() 등이됩니다.

그러나 주 활동 발사 활동에서 시작된 2 차 활동에 대해 명확하게 적용되지 않는 것 같습니다.

화면에 아무 것도 표시되지 않지만 '홈'키를 누르면 onPop()이 호출되며 onStop()도 호출되지 않고 응용 프로그램을 다시 시작하면 onResume()이 발생합니다.

예를 들어,이 보조 활동에서 화면 공백과 홈 화면으로 돌아갈 수있는 차이점을 알 수 없으며, 집으로 돌아가서 특정 작업을 수행해야하는 이유가 있습니다. 화면 빈.

알아 내기 위해 무엇을 할 수 있습니까?

+0

Activity 콜백 메소드를 수신하여 화면의 상태를 파악하는 대신 https://developer.android.com/reference/android/content/Intent.html#이 인 텐트 필터를 사용해야합니다. ACTION_SCREEN_OFF – hwrdprkns

+0

다음은 예입니다. Android에서 ACTION_SCREEN_OFF 듣기 - http://stackoverflow.com/questions/11346958/listening-for-action-screen-off-on-android – Tigger

+0

감사합니다. 유용합니다. 나는 ACTION_USER_BACKGROUND/FOREGROUND가 내가 필요한 것일지도 모른다고 생각하고있다. 나는 실험 할 것이다. – nmw01223

답변

0

실제로이 작업을 수행하는 가장 좋은 방법은 onUserLeaveHint()를 사용하는 것으로 입증되었습니다. 홈을 누를 때 자회사 활동에서 호출됩니다 (API 레벨 8 이상).

0

홈 버튼 누르기 이벤트를 캡처하는 것은 그렇게 할 수 없으며, 이는 의도적으로 이루어 지므로 차단할 수 없습니다.

캡쳐하려는 경우 간단한 앱이 아닌 런처로 설정해야합니다.

다른 이벤트의 경우 많은 메소드가 발생했음을 알려주지 만 트리거가 발생하지 않는다는 것을 알 필요가 있습니다.

이렇게하려면 직접 알아야합니다.

예를 들어, 다른 활동으로 갔다면 다른 활동으로 갔다는 깃발에 저장할 수 있습니다. 두 번째 활동에서 첫 번째 활동으로 돌아 왔음을 알아야 할 경우 두 번째 활동을 시작하려면 startActivityForResult을 사용해야하며 결과를 나중에 확인하고 두 번째 활동에서 설정합니다.

활동 전환을 피하려면 대신 조각을 사용하는 것이 좋습니다.

btw 또한 onWindowFocusChanged 방법을 확인하시기 바랍니다.

+0

일반적으로 귀하의 요구에 맞는 답변을 찾고 귀하의 질문에 답변했다고 생각할 때마다 "답변"이라고 표시하십시오 ("V"버튼 클릭). –

관련 문제