Application Class
는 Application을 상속받고 AndoridManifest.xml
에 등록하면 된다.애플리케이션이 실행 중에만 사용한다 ->
메모리
애플리케이션이 종료되고 다시 실행되었을 때도 사용한다. ->단말기 내부( 데이터가 유실될 수 있다. )
애플리케이션이 종료되고 다시 실행되었을 때도 사용한다. ->서버 ( 데이터 유실 걱정은 없다. )
다른 단말기에서도 사용을 해야한다. ->서버
KotlinClass -> AppClass
KotlinClass -> SecondAcitivty 생성 ( Empty Activity 생성 )
import android.app.Application
class AppClass : Application() {
var value1 = 0
var value2 = 0.0
lateinit var value3:String
}
manifest > application 안에 android:name으로 설정
ApplicationClass
애플리케이션 당 하나씩 둘 수 있으며 어디서든지 접근이 가능하다.
Application을 상속받은 클래스를 만들고 프로퍼티들을 정의한다.
AndroidManifest.xml에 application 태그의 name속성에 지정하여 사용한다.
val appClass = application as AppClass
appClass.value1 = 100
appClass.value2 = 11.11
appClass.value3 = "문자열1"
// 애플리케이션을 실행하면 자동으로 객체가 생성이 됨
LinearLayout
orientation : vertical
TextView
id : textViewMain
textAppearance : Large
text : MainActivity
Button
id : buttonMain
text : SecondActivity 실행
LinearLayout
orientation : vertical
TextView
id : textViewSecond
textAppearance : Large
text : SecondActivity
Button
id : buttonSecond
text : 이전으로
package com.test.android67_applicationclass
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.test.android67_applicationclass.databinding.ActivityMainBinding
class MainActivity : AppCompatActivity() {
lateinit var activityMainBinding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activityMainBinding = ActivityMainBinding.inflate(layoutInflater)
// ApplicationClass
// 애플리케이션 당 하나씩 둘 수 있으며 어디서든지 접근이 가능하다.
// Application을 상속받은 클래스를 만들고 프로퍼티들을 정의한다.
// AndroidManifest.xml에 application 태그의 name속성에 지정하여 사용한다.
activityMainBinding.run{
buttonMain.setOnClickListener {
// ApplicatonClass
// 애플리케이션 당 하나씩 둘 수 있으며 어디서든지 접근이 가능하다.
// Application을 상속받은 클래스를 만들고 프로퍼티들을 정의한다.
// AndroidManfest.xml에 application 태그의 name 속성에 지정하여 사용한다.
val appClass = application as AppClass
appClass.value1 = 100
appClass.value2 = 11.11
appClass.value3 = "문자열1"
val secondIntent = Intent(this@MainActivity, SecondActivity::class.java)
startActivity(secondIntent)
}
}
setContentView(activityMainBinding.root)
}
}
package com.test.android67_applicationclass
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import com.test.android67_applicationclass.databinding.ActivitySecondBinding
class SecondActivity : AppCompatActivity() {
lateinit var activitySecondBinding: ActivitySecondBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activitySecondBinding = ActivitySecondBinding.inflate(layoutInflater)
activitySecondBinding.run {
// ApplicationClass 객체를 가져온다.
val appClass = application as AppClass
textViewSecond.text = "${appClass.value1}\n"
textViewSecond.append("${appClass.value2}\n")
textViewSecond.append("${appClass.value3}")
}
setContentView(activitySecondBinding.root)
}
}
mainClass에서 Appclass의 객체에 담아두고
secondClass에서 Applclass에 저장된 객체를 가져와서 하는것
mainClass에서 secondClass에 있는 값을 받아와서 쓰는 것은 아님