Android DeepLink onNewIntent (LifeCycle 생명주기)
2024. 5. 10. 14:00ㆍAndroid
반응형
1.개요
DeepLink , AppLink 로 들어왔을때 Android는 어느 생명주기를 타게될까?
Android 개발을 하면 제일 많이 보게되는 생명주기표 입니다.
딥링크 or 앱링크를 통해 앱에 들어왔을때
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
Log.d("MainActivity Test" , "onCreate " + intent.data)
}
앱이 완전히 종료되었을때 기준
onCreate 에서 intent 에 데이터가 담겨져 들어옵니다.
2.만약 앱이 종료가 되지않고 백그라운드에 있는 상태에서
딥링크 or 앱링크를 통해 들어올경우는 어떻게 될까요?
앱이 백그라운드에서 다시 실행 할경우
onCreate 에서부터 시작이 아닌
onStart -> onResume 흐름으로 타게됩니다.
override fun onStart() {
super.onStart()
Log.d("MainActivity Test " , "onStart " + intent.data)
}
override fun onResume() {
super.onResume()
Log.d("MainActivity Test " , "onResume " + intent.data)
}
그럼 onStart , onResume 에서 intent.data 를 호출하면 값이 있을까요?
null 로 들어오게 됩니다.
이럴때는 onNewIntent 함수에서 데이터를 받으면 됩니다.
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
Log.d("MainActivity Test " , "onNewIntent " + intent?.data)
}
onNewIntent 는 onStart -> onNewIntent -> onResume 순으로 호출이 됩니다.
데이터를 확인하면
onNewIntent 에서 데이터가 들어오는걸 확인 하실수있습니다.
읽어주셔서 감사합니다.
반응형
'Android' 카테고리의 다른 글
Android 구조 개편기 기본구조 -> MVVM → 클린아키텍처 + 멀티모듈 → Compose + MVI 현업 적용기 (1부 MVVM 편) (1) | 2025.04.20 |
---|---|
Android PowerManager (앱 강제로 깨우기) (0) | 2024.05.13 |
Android Viewpager2 Auto Scroll Duration (자동 스크롤 속도 조절) java 버전 (0) | 2024.05.03 |
Android Compose GlideImage 이미지 미리 캐싱하기 (preload) (2) | 2024.04.26 |
Android Compose AnimatedVisibility 애니메이션 활용 (0) | 2024.04.26 |