-
[안드로이드] Serializable카테고리 없음 2024. 5. 7. 17:11
사용 이유
직렬화 인터페이스로 객체를 바이트 스트림으로 변환 후
액티비티간에 데이터를 공유하기 위해 사용합니다.
장점
상속 하나로 간편하게 사용할 수 있습니다.
단점
Reflection을 사용하여 역/직렬화를 하므로 CPU와 메모리 자원을 많이 먹습니다.
사용법
// Serializable를 상속하는 클래스를 만듭니다. data class Person(name: String, age: Int) : Serializable
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val person = Person("홍길동", 20) val intent = Intent(this, TestActivity::class.java) // Intent에서 putExtra로 직렬 가능한 클래스를 넘깁니다. intent.putExtra("person", person) startActivity(intent) } }
class TestActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_test) // getSerializableExtra로 직렬화된 데이터를 받아와 Person으로 캐스팅해줍니다. val person = intent.getSerializableExtra("person") as Person } }