https://www.youtube.com/watch?v=LRMfm458E3k&list=PLxTmPHxRH3VXHOBnaGQcbSGslbAjr8obc&index=5
DB access는 Background에서 해야함 !!
* DB작업을 백그라운드에서 처리하도록 수정하기 - AsyncTask를 사용
1. AsyncTask를 extends한 InsertAsyncTask 클래스 생성.
2. 멤버에 TodoDao선언
3. 오버라이딩 함수 doInbackground(..) 메소드에서 TodoDao.insert(todos[0])등 db작업하기.
4. 버튼 온클릭리스너에 InsertAsyncTask(db.todoDao()).excute(new Todo(~~~)) 해서 처리
*코틀린에서는? coroutines를 사용! (java는 제공 x)
1. 코틀린 익스텐션 라이브러리 추가 ( implementation )
2. 액티비티에서 코루틴 쉽게 사용하기 위해서 라이프사이클 스코프 사용.
lifecycleScope.launch(Dispathchers.IO){
db.todoDao().insert(Todo(~~~))
}
*참고
- 안드로이드에는 메인스레드, 워커 스레드 두가지 스레드가 있다.
- Dispathchers.IO -> 백그라운드스레드
'Android' 카테고리의 다른 글
| [Android] DataBinding (0) | 2020.09.11 |
|---|---|
| [Android] UI와 로직 분리 ViewModel (0) | 2020.09.11 |
| [Android] Room - LiveData 연동 (0) | 2020.09.11 |
| [Android] DB를 이용한 데이터 저장 방법 room (0) | 2020.09.11 |
| [Android] Architecture Component - ViewModel + LiveData + DataBinding (0) | 2020.09.11 |