FrontEnd/Android

[Android] 현재 Activity의 Foreground/Background 상태 확인

Satisfaction 2020. 8. 6. 21:35

 

 

Activity Lifecycle을 살펴보면

 

Activity가 Running 상태이다가

다른 액티비티가 위로 올라오면 onPause()로 진입하고

현재 액티비티가 보이지 않는 상태가 되면 onStop()으로 진입한다.

 

다시 유저가 해당 액티비티로 돌아오면 시점에 따라서

onRestart()-> onStart()-> onResume() 또는

onCreate()-> onStart()-> onResume() 또는

onResume() 의 순으로 라이프사이클이 굴러간다.

 

다시 액티비티가 포그라운드로 돌아 왔을 때 onResume()은 반드시 실행된다는 점을 알고 적용해보자

 

public class SimpleActivity extends FragmentActivity{
  //Lifecycle Phase에 따라 바뀌는 변수
  private boolean isActivityForeground= false;
  
  //액티비티가 생성됨
  @Override
  void onCreate(){
  	//...
    isActivityForeground= true;
  }
  
  //액티비티가 running 상태로 돌입하기 직전
  @Override
  void onResume(){
    isActivityForeground= true;
  }
  
  //사용자가 액티비티를 종료하거나 다른 액티비티로 이동했을 때 진입
  @Override
  void onPause(){
  	isActivityForeground= false;
  }
}

 

위의 코드를 이용하면 다른 메소드에서 현재 액티비티가 어떤 상태인지 알 수 있게 된다