[Java/Android] 현재 실행중인 어플리케이션을 백그라운드로 전환하기

현재 실행중인 어플리케이션을 백그라운드로 전화하기 위해서(다른 말로는 즉시 홈스크린을 띄우기 위해서)는 두가지 방법을 사용할 수 있습니다. moveTaskToBack라는 메서드를 사용하거나 Intent를 이용하여 홈을 띄우는 방법이 있습니다.

1. 메서드 활용하기

Activity에서 호출이 가능한 moveTaskToBack(boolean nonRoot)라는 메서드는 인자로 boolean형을 받고 결과값을 boolean형으로 반환합니다. 이 메서드는 현재의 엑티비티가 속해있는 테스크를 백그라운드로 즉시 이동시킵니다. 정상적으로 이동이 되었다면 true가 반환이 되며 이동에 실패할 경우 false가 반환됩니다.

하나의 인자를 받는데 true를 입력할 경우 어떠한 경우라도 상관없이 백그라운드로 이동을 시킵니다. false일 경우 현재의 엑티비티가 루트(root)일 경우에만 백그라운드로 이동시킵니다. 루트라는 말은 태스크의 가장 첫번째(바닥)의 엑티비티임을 뜻합니다.

2. Intent 활용하기

1에서 소개해드린 방법으로도 백그라운드로 전환되지 않는 특정한 상황이 있다고 합니다. 그 경우 다음의 인텐트를 활용하는 방법을 사용하면 100% 전환이 이루어집니다. 1의 방법은 엑티비티를 백그라운드로 넘기는 방법이고 이방법은 홈스크린을 현재의 화면으로 끌고 오는 방법입니다. 간단하게 다음의 코드를 사용하시면 됩니다.

다음은 위의 두가지 방법을 테스트 해볼수 있는 예제 소스를 올려드립니다. [다운로드]

사용자 삽입 이미지

  • DH

    찾던 글인데 감사합니다.
    그런데 다시 백그라운드에 있는 프로그램을
    불러올려면 어떻게 해야 하나요 ㅠ

    • 다른 프로그램에서든지 서비스를 돌리고 있던지 언제든지 그냥 인텐트로 호출하면 되고요, 사용자 레벨에서의 이야기를 말씀드리자면 홈키 누르고 있으면 최근 실행한 어플 목록이 나옵니다.

  • 잘봤습니다 참고 할께요~

  • Pingback: 안드로이드 개요(Android overview)()

  • 박원주

    좋은정보 너무 감사 합니다.