---------------

플래그와 부가 데이터

액티비티는 [액티비티 매니저] 라는 객체에 의해 [액티비티 스택]이라는 것으로 관리됨

액티비티를 차곡차곡 쌓아두고 상위에 있는 액티비티가 없어지면 이전의 액티비티가 화면에 보임

순서

액티비티 생성

매니페스트 파일 등록

startActivity() 또는 startActivityForResult() 메서드를 사용해 실행

새로운 액티비티가 화면에 띄워짐

이전 액티비티는 액티비티 스택에 저장

액티비티가 없어지면 스택 최상위에 있는 액티비티가 노출

(동일한 액티비티를 여러번실행하면 스택에 계속 쌓여 데이터를 여러번 접근하거나 리소스 문제 발생)

NO_FLAG

FLAG_ACTIVITY-SINGLE-TOP

FLAG_ACTIVITY-NO_HISTORY

FLAG_ACTIVITY-CLEAR_TOP

 

NO_FLAG 일 경우 같은 액티비티가 계속 해서 쌓인다

FLAG_ACTIVITY-SINGLE-TOP 일 경우 같은 액티비티는 하나만 쌓인다

 

새로운 액티비티를 띄워주는 액티비티를 부모 액티비티라고 할경우

전달하는 인텐트는 새로 만들어진 인텐트의 onCreate()메서드 안에서 getIntent()메서드로 참조 할 수있다

 

onNewIntent()메서드를 재정의 하면 액티비티가 새로 만들어지지 않았을 때 인텐트 객체만 전달 받을 수 있음

액티비티가 이미 메모리에 객체로 만들어져 있다면 액티비티를 다시 띄우더라도 onCreate()가 실행되지 않기 때문에

onNewIntent()를 재정의 해서 사용해야한다

 

브로드캐스트 수신자?

 

FLAG_ACTIVITY-NO_HISTORY

항상 맨처음의 액티비티가 보이게된다 알림 메시지등 한번화면에 보여줄 때 좋음

 

FLAG_ACTIVITY-CLEAR_TOP

는 되돌아갈 때 스택에 상위 액티비티를 다 제거하고 메인 액티비티로 가게됨

 

부가데이터 

Intent Bundle

번들 객체는 해시테이블과 유사

기본자료형을 넣고 뺄수 있지만 Serializable 객체도 사용가능

안드로이드는 객체를 전달할때 Serializable 보다 Parcelable인터페이스 권장

 

 

 

 

+ Recent posts