728x90
화면 전환을 한 경우, 로그인 화면은 다시 보이지 않도록 해야 한다.
val intent = Intent(this, MainActivity::class.java) intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK or FLAG_ACTIVITY_NEW_TASK) // FLAG_ACTIVITY_CLEARTOP : 실행할 activity가 이미 스택에 존재하면 해당 activity 위에 존재하는 다른 activity 모두 종료시킨다. // FLAG_ACTIVITY_SINGLE_TOP : 호출하는 activity가 자신을 가리키는 경우, 기존의 activity를 재활용한다. // 활동의 인스턴스가 이미 현재 작업의 맨 위에 있으면 시스템은 활동의 새 인스턴스를 생성하지 않고 // onNewIntent() 메서드를 호출하여 인텐트를 기존 인스턴스로 라우팅한다. // https://developer.android.com/guide/components/activities/tasks-and-back-stack 읽어보면 된다. // FLAG_ACTIVITY_CLEAR_TASK : // FLAG_ACTIVITY_NEW_TASK : service, notification 등에서 액티비티를 시작하기 위해선 꼭 붙여야 한다. // 스택에 없으면 새로운 task 생성하고 launch 시키고, 스택에 있으면 해당 task가 Foreground로 온다. startActivity(intent) finish() // 현재 activity 제거. login 화면은 다시 사용하지 않도록 하기 위해서 |
메모를 추가/수정하고, AddEditMemoActivity 를 종료하면서, 아래와 같은 FLAG를 지정한 경우
val intent = Intent(this@AddEditMemoActivity, MainActivity::class.java)
intent.apply {
this.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP)
}
startActivity(intent)
overridePendingTransition(R.anim.fadein, R.anim.fadeout)
finish()
|
MainActivity 는 onNewIntent 를 수행하므로 여기에 필요한 코드를 추가한다.
override fun onNewIntent(intent: Intent?) {
super.onNewIntent(intent)
Log.d(TAG, "onNewIntent()")
getMemoFromServer()
}
|
728x90
'안드로이드 > Kotlin 기능' 카테고리의 다른 글
[코틀린] HttpURLConnection 통신 예제 (0) | 2020.06.24 |
---|---|
[코틀린] TED Permission 및 BackPressHandler (0) | 2020.06.19 |
[코틀린] volley 라이브러리 사용예제 (0) | 2020.05.09 |
[코틀린] Tedpermission 사용방법 (0) | 2020.05.06 |
[코틀린] PrefsHelper (0) | 2020.05.04 |