Activity stack에 관한 처리

devvace ㅣ 2016. 11. 2. 15:56

안드로이드에서 Activity 여러개를 계속 Intent로 넘기다보면, 이전의 Activity 들이 없어지지 않고 남아 있기 때문에 Back key 처리 등의 문제가 발생할 수 있다.



1. 접근해서는 안되는 이전화면으로 돌아가버리는 문제


Intent 생성 후


     // 기존에 쌓인 모든 Stack을 없앤다.

intent.addFlags(intent.FLAG_ACTIVITY_CLEAR_TASK);

  

// 새로운 TASK를 생성, 이 때 Root activity는 새로 생성한 Activity

intent.addFlags(intent.FLAG_ACTIVITY_NEW_TASK);    


2. 이전의 화면으로 돌아가야하는 문제


Intent 생성 후 


//이전 Activity를 새로운 Activity로 지정하고 현재 Activity는 Clear하는 Flag 상수

intent.addFlags(intent.FLAG_ACTIVITY_CLEAR_TOP);    




※ 2번은 Manifest 파일에 android:launchmode="singleTop"을 추가해주면 비슷하게 문제해결 가능