티스토리 뷰

반응형

보통 액티비티를 종료할때 finish()를 많이 사용한다.

 

하지만 이렇게 종료하면 현재 액티비티만을 종료시킬 뿐 루트 액티비티는 그대로 남아있다

 

여기서 루트액티비티와 현액티비티를 모두 종료시켜 앱을끄고 싶다면 아래와 같은방법을 사용하자

 

Activity.finishAffinity() //해당 앱의 루트 액티비티를 종료시킨다. (API  16미만은 ActivityCompat.finishAffinity())

System.runFinalization() //현재 작업중인 쓰레드가 다 종료되면, 종료 시키라는 명령어이다.

System.exit(0) // 현재 액티비티를 종료시킨다.

 

자바에서는 뒤에 세미콜론(;)만 붙여서 사용하면 같은효과를 볼 수 있다.

 

앱을 재시작 하고싶다면

 

finishAffinity()
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)
System.exit(0)

 

위와같은 순서로하면 된다.

 

 

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함