본문 바로가기

Android/공부

onNewIntent 개념 및 사용법

1. 개요

startActivity() 나 startActivityForResult() 메서드를 호출하면 액티비티 화면을 띄울 수 있습니다.

그런데 동일한 액티비티를 계속 위의 메서드로 호출하게 되면 동일한 액티비티가 메모리에 여러 개 만들어질 것입니다. 이를 방지하기 위해서 Flag(플래그)를 사용할 수 있습니다.

플래그를 사용하면 동일한 액티비티가 계속해서 생성되지 않고 하나의 액티비티만 존재하게 할 수 있습니다.

2. 생명주기

다른 액티비티에서 이미 생성된 액티비티를 호출하면 onNewIntent() → onResume() 메서드 순서로 호출됩니다.

그런데 만일 동일한 액티비티에서 동일한 액티비티를 호출하면 onPause() → onNewIntent() → onResume() 메서드 순서로 호출됩니다. 즉, 기존 액티비티에선 onStop() 메서드가 호출되지 않는 것입니다. 따라서 만일 데이터를 저장해 동일한 액티비티에 표시를 하거나 데이터 자체가 필요할 경우, onPause() 메서드에 저장을 해야 할 것 같습니다.

728x90
반응형