Android DeepLink onNewIntent (LifeCycle 생명주기)

2024. 5. 10. 14:00Android

반응형

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 에서 데이터가 들어오는걸 확인 하실수있습니다.

 

읽어주셔서 감사합니다.

반응형