728x90
반응형
SMALL
단순한 Activitlifecycle 응용방법으로는 onPause( ) , onResume( ) 방법이 있다.
앱이 백그라운드 상태 일때 onPause( ) 가 호출되고, 다시 포그라운드 상태일때 onResume( ) 이 호출된다.
하지만 이는 액티비티가 종료되고, 다른 액티비티가 실행될때에도 실행되는 함수들이기 때문에 꼬이는 경우가 있을수도 있다. 그래서 찾아낸것은 onWindowFocusChanged( ) 함수이다. 백그라운드 상태를 체크한다기보단, 좀 더 정확하게
"(onWindowFocusChasnged( )를 가지고있는) Activity 가 최상단 인지 체크한다고 보면된다."
함수 그대로 지금의 윈도우가 Focus 되고있나 를 체크하는 함수이다.
코드는 아래와 같다.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
// hasFocus == true : 포그라운드 상태
// hasFocus == false : 백그라운드 상태
}
}
}
위의 코드를 넣어 확인해보면 알겠지만, 위의 클래스를 띄우고 있다가, "클래스가 가려지거나 ,사라지거나 할때 onWindowFocusChanged( ) 가 호출이 되면서 동시에 hasFocus 에 false 가 들어오게 된다." 이를 활용하면 많은 도움이 될거라 생각함.
- 끝 -
'Android Study' 카테고리의 다른 글
안드로이드 해상도 폴더별 dimens (0) | 2020.01.14 |
---|---|
안드로이드 Background 상태 체크하기 (0) | 2019.12.18 |
WebView에서 파일 업로드(이미지) 버튼 이벤트 안될때 (5) | 2019.12.13 |
Android notification 헤드업 Tip(channel 사용 버전만) (0) | 2019.11.12 |
안드로이드의 디자인 적용 원리 (0) | 2019.05.09 |