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

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

1. 메서드 활용하기

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

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

2. Intent 활용하기

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

Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);

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

사용자 삽입 이미지