처음 AsyncTask를 사용해보며 백그라운드 작업을 완료한 뒤
onPostExcute 콜백함수에서 리사이클러뷰 어댑터까지 세팅하는 구조로 코딩을 했다.
앱은 정상동작했지만 에러로그에 계속
E/RecyclerView: No adapter attached
라는 문장이 확인되었다.
검색해보니 메인 스레드가 한번 쭉 지나가면서 xml에 정의된 리사이클러뷰를 점검했더니
아직 어댑터가 연결돼있지 않으니까 해당 에러를 출력하고,
뒤늦게 백그라운드 작업이 완료돼서 앱은 정상동작하는 느낌이었다.
(현시점 정확한 안드로이드의 구조를 몰라서 논리적인 설명이 어렵다)
그래서 빈 리스트를 주면서 onCreate (혹은 onCreateView) 함수 안에
비어있는 리사이클러뷰를 정상세팅해주고,


onPostExcute에서는 notifyDataChanged() 함수를 호출했다.
그러면 백그라운드 작업이 완료되었으므로
배열에 반영되어 에러도 없애고 안정적인 동작이 가능해진다.

'Android' 카테고리의 다른 글
| ActivityResultLauncher 로 MultiplePermissions 하기(다중 권한 요청) (0) | 2021.09.21 |
|---|---|
| BLE service intent 시, getApplicationContext() NullPointerException 해결 (0) | 2021.09.13 |
| Android / windows Key hash 구하기(안드로이드 키 해시 구하기) (0) | 2021.09.12 |
| Android 카카오톡 로그인 구현 (0) | 2021.08.30 |
| BottomSheetLayout (Backdrop) 구현 (0) | 2021.07.26 |