투케이2K

63. (kotlin/코틀린) 안드로이드 액티비티 라이프 사이클 (android activity life cycle) 정리 본문

Kotlin

63. (kotlin/코틀린) 안드로이드 액티비티 라이프 사이클 (android activity life cycle) 정리

투케이2K 2022. 9. 23. 09:17

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : Kotlin

 

[소스 코드]

class A_AA_Test_Kotlin : AppCompatActivity() {

   
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_a_aa_test_kotlin)
        Log.d("---","---")
        Log.d("//===========//","================================================")
        Log.d("","\n"+"[A_AA_Test_Kotlin > onCreate() 메소드 : 액티비티 시작 실시]")
        Log.d("//===========//","================================================")
        Log.d("---","---")
    }





    override fun onResume() {
        super.onResume()
        Log.d("---","---")
        Log.d("//===========//","================================================")
        Log.d("","\n"+"[A_AA_Test_Kotlin > onResume() 메소드 : 액티비티 준비 실시]")
        Log.d("//===========//","================================================")
        Log.d("---","---")
        try {
            //TODO 외부 브라우저 복귀 시 화면 전환 애니메이션 없애기 위함
            overridePendingTransition(0, 0)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }





    override fun onPause() {
        super.onPause()
        Log.d("---","---")
        Log.d("//===========//","================================================")
        Log.d("","\n"+"[A_AA_Test_Kotlin > onPause() 메소드 : 액티비티 실행 중지]")
        Log.d("//===========//","================================================")
        Log.d("---","---")
    }





    override fun onDestroy() {
        super.onDestroy()
        Log.d("---","---")
        Log.d("//===========//","================================================")
        Log.d("","\n"+"[A_AA_Test_Kotlin > onDestroy() 메소드 : 액티비티 종료 실시]")
        Log.d("//===========//","================================================")
        Log.d("---","---")
        try {
            //TODO 외부 브라우저 복귀 시 화면 전환 애니메이션 없애기 위함
            overridePendingTransition(0, 0)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }





    override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
        // 디바이스의 키 이벤트가 발생했는데, 뒤로가기 이벤트일때
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            Log.d("---","---")
            Log.d("//===========//","================================================")
            Log.d("","\n"+"[A_AA_Test_Kotlin > onKeyDown() 메소드 : 백버튼 터치시 뒤로 가기 이벤트 실시]")
            Log.d("//===========//","================================================")
            Log.d("---","---")
        }
        return true
    }





    override fun dispatchTouchEvent(event: MotionEvent): Boolean {
        val action = event.action
        when (action) {
            MotionEvent.ACTION_DOWN -> {
                // [키보드 창 내리는 용도] 
                val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
                imm.hideSoftInputFromWindow(display_textview.windowToken, 0)
            }
            MotionEvent.ACTION_MOVE -> {
            }
            else -> {
            }
        }
        return super.dispatchTouchEvent(event)
    }


}

 

반응형
Comments