아이디와 비밀번호를 입력 하고 프로필 작성 후 완료 버튼을 눌렀을 때에 타임라인이 뜨면서 앞에 회원가입을 한 액티비티들을 모두 종료하기 위해 사용하였습니다.
MainActivity -> LoginActivity -> ProfileActivity -> MainTLActivity
-> 뒤로가기 -> MainActivity
액티비티는
LoginActivity
ProfileActivity 를 종료시키고 MainTLActivity로 넘어갈 것입니다.
저 3개의 액티비티를 상속 해줄 BaseActivity를 생성합니다.
여기서!!
public class BaseActivity extends AppCompatActivity extends를 해줘야 Activity를 상속할 때 문제가 나지 않습니다.
생성하였으면, 4개의 액티비티를 상속 해줍니다.
public class ProfileActivity extends BaseActivity
상속을 한 뒤에 BaseActivity에서 액티비티 ArrayList를 만들어 삭제할 액티비티들을 저장하고 한번에 삭제할 함수를 만들어 줄겁니다.
- BaseActivity
// 여러 액티비티 한번에 종료하기
public static ArrayList<Activity> actList = new ArrayList<Activity>();
public void actFinish(){
for(int i = 0; i < actList.size(); i++)
actList.get(i).finish();
}
- 삭제할 액티비티 (저는 위에 저 3개의 액티비티)
protected void onCreate(Bundle savedInstanceState) {
actList.add(this);
actList.add(this); 를 추가해줍니다.
삭제할 액티비티를 모두 추가해주셨으면!!
저는 ProfileActivity에서 버튼을 눌렀을 때에 actFinish()함수를 불러주겠습니다.
Intent intent = new Intent(ProfileActivity.this, MainTLActivity.class);
startActivity(intent);
actFinish();
MainTLActivity화면에서 뒤로가기를 눌렀을 경우 ProfileActivity 아닌 MainActivity가 나오게 됩니다.
2018.02.12 수정
onDestroy에서 BaseActivity에 추가해준 액티비티에 대해 remove도 해줘야합니다!
만약, MainActivity -> LoginActivity -> MainActivity -> LoginActivity .. 이렇게 로직을 탄다면
계속 리스트에는 쌓이는 구조기때문에 remove가 필요합니다!
댓글 감사합니다!
'Android Studio' 카테고리의 다른 글
android Intent 데이터 전달 (0) | 2017.02.27 |
---|---|
[안드로이드] android 키보드 완료 누를 시 (0) | 2017.02.26 |
[안드로이드] 스플레쉬 화면 (splash) (0) | 2017.02.07 |
[안드로이드] Fragment findViewById NullPointerException 오류 (2) | 2017.02.06 |
[안드로이드] 지도 65536 오류 (0) | 2017.02.03 |