2014-04-14 1 views
0

Android 앱이 다시 포커스를 받거나 시작될 때 알림을 받고 싶습니다. 까다로운 부분은 앱 내에서 활동을 전환 할 때 나타나는 이벤트에 신경 쓰지 않는다는 것입니다. 난에 관심이 이벤트는 다음과 같습니다앱이 포커스를 다시받을 때 Android 브로드 캐스트 또는 이벤트를 수신합니까?

  • 앱은 앱이 어떤 활동에 활성화됩니다

내가 onStart()onResume()으로 처리 시도 (사용자가 다시 전면으로 가져) 시작 메소드가 있지만 Activity이로드 될 때마다 실행되며 앱 내에서 활동을 전환하는 경우에도 onStop을 호출합니다.

라이프 사이클 (http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle)을 확인했지만 onDestroy()은 앱 내에서 활동을 전환 할 때만 호출됩니다.

  • 내 앱이 재 활성화되었는지 또는 활동 전환인지 어떻게 확인할 수 있습니까?
+0

흠, 그냥 생각해 보면 http : //www.devahead 응용 프로그램을 무시할 수 있습니다.com/blog/2011/06/extend-the-android-application-class-and-singleton/http://developer.android.com/reference/android/app/Application.html을 방문한 다음 애플리케이션 LicecycleCallbacks를 등록하십시오. http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html 및 애플리케이션에서 처리하십시오. –

답변

0

**App is started**에 대해 Application 클래스를 재정의해야합니다. 앱을 열 때마다 한 번 호출됩니다.

0

두 가지 가능한 솔루션은 그들 중 어느 쪽도 매우 깨끗, 마음에 와서.

1), 당신이 1 초 (이상 뭔가 후 플래그를 설정하는 타이머를 예약 타이머

에게 onPause() 방법의 모든 시간을 사용하여) 당신의 정확한 사용 사례에 따라 달라집니다. 각 onResume()에서 플래그가 설정되었는지 확인합니다 (예 : 앱이 타이머 간격보다 오래 동안 비활성 상태였습니다. 플래그가 설정되어 있으면 사용자가 수동으로

앱에 Activities 사이에 스위치를 실행할 때마다 플래그 설정 onPause()onResume()

2) 사이에 다른 짓을 알고, 당신은 어딘가에 플래그를 설정 귀하의 신청서에 onResume() 방법에서 플래그가 설정되었는지 확인합니다 (예 : 스위치가 앱에 의해 트리거되었습니다. 설정되어 있지 않으면 사용자가 앱 외부에서 온 것입니다.

두 방법, 그러나 가능한 유스 케이스 사이의 추가적인 구별 할 수 없다. 이러한 모든 경우에 당신에게 같은 모양 :

  • 사용자가 다시
  • 사용자 홈 버튼을 누르면 나중에
  • 사용자가 화면을 해제 주어진 시간에 응용 프로그램을 다시 시작하고, 전화가 걸려서 즉시 앱으로 돌아갑니다.

이렇게하면 앱이 바람직하지 않은 동작을 할 수 있습니다. 나는이 메커니즘을 정확히 사용하기를 원한다는 것을 모른다.하지만 가능한 모든 경우에 대해 매우 열심히 생각해야한다.

관련 문제