amid.jungs

LiveData 본문

Android

LiveData

amid.jungs 2021. 4. 2. 21:26

LiveData 란?

데이터 홀더클래스로 수명 주기를 인식하며 Observer 패턴을 사용한다.

활성상태 (activity : STARTED , RESUMED) 일때 데이터를 업데이트하며

데이터에 변화가 일어날 경우, Observer의 onChanged()메소드가 실행된다.

 

공식문서 : developer.android.com/topic/libraries/architecture/livedata?hl=ko

 

LiveData 개요  |  Android 개발자  |  Android Developers

LiveData를 사용하여 수명 주기를 인식하는 방식으로 데이터를 처리합니다.

developer.android.com

 

사용방법

I. LiveData 정의

Room을 사용하여 만든 Dao List를 LiveData로 변경

@Dao
interface TodoDao {
    @Query("SELECT * FROM Todo")
    fun  getAll(): LiveData<List<Todo>>

    @Insert
    fun insert(todo : Todo)

    @Update
    fun update(todo : Todo)

    @Delete
    fun delete (todo : Todo)
}

 

II.  Observer Setting

val db = Room.databaseBuilder(
            applicationContext,
            AppDatabase::class.java, "database-name"
        ) .allowMainThreadQueries()
            .build()

        //LiveData
        db.todoDao().getAll().observe(this, Observer { todos ->
            result_text.text = todos.toString()
        } )

        btn_add.setOnClickListener {
            db.todoDao().insert(Todo(todo_edit.text.toString()))
           

        }

'Android' 카테고리의 다른 글

Android & Kotlin : Log, 변수  (0) 2021.07.25
Android란?  (0) 2021.07.25
Room 사용하기  (0) 2021.03.29
Data Binding  (2) 2021.03.23
[Android_Kotlin] Retrofit2 +Json 사용하기  (0) 2021.03.21
Comments