Nice programing

프로그래밍 방식으로 홈 화면으로 이동

nicepro 2020. 10. 20. 08:11
반응형

프로그래밍 방식으로 홈 화면으로 이동


사용자가 버튼을 클릭하면 Android에서 프로그래밍 방식으로 홈 화면으로 이동하고 싶습니다. 어떻게 할 수 있습니까?


Intent를 통해이를 수행 할 수 있습니다 .

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

이 인 텐트는 사용자가 정의한 런처 애플리케이션을 시작합니다. 사용자가 예상하지 못한 경우 애플리케이션이 충돌 한 것처럼 보이기 때문에주의해야합니다.

앱에서 이탈 버튼을 빌드하려면 Android의 이탈 버튼대한이 문서를 읽어 보세요.


한 줄 솔루션

moveTaskToBack(true); //activity.moveTaskToBack(true);

홈 버튼을 눌렀을 때 작동합니다.


Janusz의 대답 은 훌륭합니다.

내가 추가하고 싶은 유일한 것은 코멘트에 너무 길지만 현재 활동에 대한 참조없이 홈 화면으로 이동할 수 있다는 것입니다.

Janusz의 코드는 다음과 같은 이유로 Activity 또는 Fragment에서 호출되어야합니다 startActivity().

이 문제를 해결하기 위해 애플리케이션 파일에 앱 컨텍스트에 대한 정적 참조를 저장할 수 있습니다.

public class YourApplication extends Application
{

    private static Context mAppContext;

    public void onCreate()
    {
        super.onCreate();
        ...
        YourApplication.mAppContext = getApplicationContext();
    }

    public static Context getContext()
    {
        return mAppContext;
    }

}

이제 현재 활동에 대한 참조를 사용하여 활동, 프래그먼트 또는 기타 클래스뿐만 아니라 앱의 모든 클래스에서 사용자를 기기 홈 화면으로 보낼 수 있습니다 (이게 좋은지 나쁜지 결정할 수 있음).

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);

에서 안드로이드 개발자 사이트

다음은 이러한 추가 매개 변수를 사용하여 인 텐트로 지정할 수있는 다른 작업의 몇 가지 예입니다.

* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.

startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

나는 이것이 조금 늦었다는 것을 알고 있지만 동일한 문제에 부딪 혔고 여기에 내가 해결 한 방법이 있습니다. 다시 돌아가서 MainActivity종료에서 플래그를 추가해야합니다.Activity

    final Intent mainActivity = new Intent(this, MainActivity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

이제 MainActivity활성화 된 뒤로 버튼을 누르면 홈 화면으로 이동합니다.

참고 URL : https://stackoverflow.com/questions/3724509/going-to-home-screen-programmatically

반응형