액티비티
- 사용자에게 보여주는 한 화면의 단위
서비스
- 멜론같이 돌아가게 도와주는 역할
방송수신자
- 안드로이드 상태감지
콘텐츠 제공자
- 데이터를 저장할 수 있는 역할
인텐트
- 중간역할
- 액티비티끼리의 화면전환에 필요한 기술
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
로그인 실습
'수업 > 안드로이드' 카테고리의 다른 글
[안드로이드] 11일차 - volley로 서버통신하기 (0) | 2023.05.18 |
---|---|
[안드로이드] 10일차 - Servlet 에 POST방식 전송 (HashMap사용) (0) | 2023.05.17 |
[안드로이드] 8일차 - intent 사용하여 페이지 이동 로그인 체크, 양방향 intent (0) | 2023.05.11 |
[안드로이드] 2일차 - 이벤트 처리방식 3가지, 레이아웃 종류 간단 설명 (0) | 2023.05.01 |