마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

스택에 쌓인 액티비티를 모두 종료하는 방법은 무엇인가요? <코틀린>

0 추천
인텐트로 액티비티를 여러개 켜다보면, 현재 출력되고 있는 액티비티 이외에

 

보이지 않게 실행되고 있는 액티비티들을 모두 종료시키고 싶은데,

 

종료가 안됩니다. finish()는 현재 출력되고 있는 액티비티만 종료하게 해주는거라

 

제가 원하는것은, 현재 출력되고 있는 액티비티에 가려진 액티비티들을

 

종료하고 싶다는 것입니다.

 

그러나, 다른 액티비티를 불러오는 방법을 모르겠습니다.

 

예를 들어서, MainActivity를 종료시키는 코드를 다른 액티비티에서 작성하고 싶은데,

 

MainActivity.finish()를 작성하면, finish()부분이 빨간 글씨로 변합니다.
상쾌한 (1,890 포인트) 님이 2021년 1월 14일 질문
상쾌한님이 2021년 1월 14일 reopened

1개의 답변

+1 추천
 
채택된 답변
액티비티가 쌓이는 경우는
휴대폰의 백키를 눌렀을 때 그 화면으로 돌아가게 하려는 것입니다.

안그러면 백키를 눌러서 액티비티가 없으면 앱이 그냥 종료하게 됩니다.
사용자 입장에서는 당황스러운 일이죠.
사용자가 종료할 때는 앱 강제 종료를 위해 Swiping 하는 것이죠.

이러한 화면 네비게이션의 흐름은 기획할 때 결정이 됩니다.

아래 코드는 액티비티 하나만 실행하고 나머지 히스토리는 다 지우는 겁니다.

        Intent i = new Intent(this, MainActivity.class);
        i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(i);
Will Kim (43,170 포인트) 님이 2021년 1월 14일 답변
상쾌한님이 2021년 1월 14일 채택됨
정말 감사합니다. 클리어 타스크 여러번 시도했었는데 안되길래, 뭐가 잘못된 것인가 했더니, i부분을 잘못 사용해서 그랬더라고요. 윌킴님 답변 보고 알게되었네요. 정말 감사합니다. 매번 이렇게 큰 도움 주셔서 너무 감사해요. ^^ 정말 정말 너무 감사해요. ㅠㅠ 정말 복 많이 받으시기를 기도합니다.
Good luck 2 U~
...