액티비티

  • 사용자에게 보여주는 한 화면의 단위

서비스

  • 멜론같이 돌아가게 도와주는 역할

방송수신자

  • 안드로이드 상태감지

콘텐츠 제공자

  • 데이터를 저장할 수 있는 역할

인텐트

  • 중간역할
  • 액티비티끼리의 화면전환에 필요한 기술

 

 

Activity 개요

 

 

Activity 생명주기

  • 각각 생명주기에 대한 메소드들이 따로 존재
  • 같이 만들어 볼 예정

 

 

새 프로젝트 생성 - MyIntent

 

 

textView 수정

 

onCreate() 는 메인 함수 역할

AppCompatActivity()

onStart() onResume() 기능을 알아서 실행시킨다

 

tag 어디서 출력된건지 기재

msg 출력할 메시지 작성

 

 

출력 결과

 

코드 전체

package com.example.myintent

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log

class MainActivity : AppCompatActivity() {

    // AppCompatActivity --> 액티비티를 실행시킬 수 있는
    // 라이프 사이클과 관련된 메서드가 있다!
    private var Tag = "MainActivity"


    // onCreate() : xml에 있는 요소들을 클래스 파일에서 컨트롤 할 수 있도록 로딩해주는 역할
    // ---> 앱 실행시 단 한번만 실행되어진다!
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        Log.d(Tag,"onCreate 실행")
    }

    // onStart() : 화면에 띄워질 정보를 메모리에 저장
    override fun onStart() {
        super.onStart()

        Log.d(Tag,"onStart 실행")
    }

    // 실질적으로 사용자에게 화면을 보여주는 역할
    // 사용자와 상호작용 할 수 있도록 만들어줌
    override fun onResume() {
        super.onResume()
        Log.d(Tag, "onResume 실행")
    }

    // 어플이 일시 정지 되었을 때
    // --> 사용자 의도와는 다르게 어플이 일시 정지 되었을 때
    override fun onPause() {
        super.onPause()
        Log.d(Tag, "onPause 실행")
    }

    // 사용자 임의로 앱을 정지 시켰을 때! -> 종료가 아님 메모리상에 남아있음
    // 앱을 다시 구동할 수 있기 때문에 백그라운드 상태로 만들어 준다.
    override fun onStop() {
        super.onStop()
        Log.d(Tag, "onStop 실행")
    }

    // 메모리에 저장되어 있던 내용을 찾아서
    // 다시 사용자에게 보여주는 순서(onStart -> onResume)를 실행시켜줌
    override fun onRestart() {
        super.onRestart()
        Log.d(Tag, "onRestart 실행")

    }

    // 앱을 종료 시킬 때 사용되어짐! --> 메모리에 내용을 지움!
    override fun onDestroy() {
        super.onDestroy()
        Log.d(Tag, "onDestroy 실행")
    }
}

 

Intent 

  • 묵시적 인텐트 : 어떤 액션을 통해서 받은 액티비티 자체를 실행
    • 액션이 많이 붙음
  • 명시적 인텐트 : 개발자가 만든 다른 액티비티로 전환시킬 수 있는 것
    • 개발자가 만든 것

 

새 액티비티 생성

실습

버티컬 레이아웃 추가 -> 마법봉 클릭 

버튼 세개 추가

각각 id와 text 변경해준다

 

코드작성

 

웹페이지 이동하기

 

원래 바로 실행안되는데 안드로이드 버전이 업그레이드 되면서 허용되게 되었다.

기존 코드로는 아래 코드를 추가해준다

 

 

에뮬레이터 앱삭제

  • 앱 꾸욱 누르고, 드래그해서 Uninstall에 넣기, 메시지 뜨면 OK 누르기

 

카메라 기능

 

권한 허용 받게끔 알림

 

 

 

명시적 인텐트

 

내가 만든 액티비티로 이동하기

 

 

 

새프로젝트 생성 - MyIntent2

로그인 실습

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts