응용 프로그램을 종료하고 홈 화면을 표시하는 방법은 무엇입니까? 프로그램이 있습니다. 해당 페이지에는 클릭하면 응용

홈페이지에 응용 프로그램을 탐색하는 버튼이있는 응용 프로그램이 있습니다.

해당 페이지에는 클릭하면 응용 프로그램 아이콘이있는 전화기의 홈 화면으로 사용자를 안내하는 “종료”버튼이 있습니다.

어떻게해야합니까?



답변

Android의 디자인은 선택적으로 응용 프로그램을 종료하는 것이 아니라 OS에서 관리하는 것입니다. 해당 의도로 홈 애플리케이션을 불러올 수 있습니다.

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

답변

이 같은 것을 시도 할 수 있습니다

응용 프로그램에서 많은 활동 (예 : 10)이 있고이 활동에서 직접 종료해야한다고 가정합니다. 우리가 할 수있는 일은 인 텐트를 만들고 루트 활동으로 이동하여 인 텐트에 플래그를 설정하는 것입니다.

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

또한 의도에 부울과 같은 것을 추가하십시오.

intent.putExtra("EXIT", true);

그런 다음 루트 활동에서 가치 확인 boolean에서) 그 콜 완료 (에 따른 onCreate()루트 활동

if (getIntent().getBooleanExtra("EXIT", false)) {
 finish();
}

답변

System.exit(0);

아마 당신이 찾고있는 것입니다. 전체 응용 프로그램을 닫고 홈 화면으로 이동합니다.


답변

이것은 나를 위해 잘 작동합니다.
다음과 같이 이전의 모든 활동을 닫으십시오.

    Intent intent = new Intent(this, MainActivity.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("Exit me", true);
    startActivity(intent);
    finish();

그런 다음 MainActivity onCreate () 메소드에서 이것을 추가하여 MainActivity를 완료하십시오.

    setContentView(R.layout.main_layout);

    if( getIntent().getBooleanExtra("Exit me", false)){
        finish();
        return; // add this to prevent from doing unnecessary stuffs
    }

답변

먼저 방법을 사용하여 신청서를 작성하십시오. finish();

그런 다음 강제 제거를 위해 onDestroy에 아래 줄을 추가하십시오.

android.os.Process.killProcess(android.os.Process.myPid());
super.onDestroy();

답변

활동을 끝내려면 간단히 전화하면 finish()됩니다. 그러나 화면에 종료 버튼이있는 것은 좋지 않습니다.


답변

일부 활동은 실제로 스플래시 화면 활동, 시작 화면 활동, 확인 창과 같이 뒤로 버튼을 눌렀을 때 다시 열지 않으려 고합니다. 실제로 활동 스택에서는 이것을 필요로하지 않습니다. => manifest.xml 파일을 열고 속성을 추가 하여이 작업을 수행 할 수 있습니다

android : noHistory = “true”

이러한 활동에.

<activity
    android:name="com.example.shoppingapp.AddNewItems"
    android:label=""
    android:noHistory="true">
</activity>

또는

때로는 특정 뒤로 버튼 누름으로 전체 응용 프로그램을 닫고 싶을 때가 있습니다. 여기서 모범 사례는 응용 프로그램을 종료하는 대신 홈 창을 여는 것입니다. 이를 위해서는 onBackPressed () 메소드를 대체해야합니다. 일반적으로이 방법은 스택에서 최상위 활동을 엽니 다.

@Override
public void onBackPressed(){
Intent a = new Intent(Intent.ACTION_MAIN);
a.addCategory(Intent.CATEGORY_HOME);
a.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(a);

}

또는

뒤로 버튼을 누르면 해당 활동을 종료하고 활동 스택에 추가하지 않으려 고합니다. onBackPressed () 메소드 내에서 finish () 메소드를 호출하십시오. 전체 응용 프로그램을 닫지 않습니다. 스택의 이전 활동으로 이동합니다.

@Override
public void onBackPressed() {
  finish();
}