Android(60)
-
ViewModel
ViewModel 이란? 기존 MVVM의 ViewModel 역할(UI에 맞는 데이터 제공) + 수명주기 ViewModel의 특징 UI 컨트롤러(activity, fragment, adapter 등)에 대한 context를 참조하면 안됨 context가 필요한 경우 AndroidViewModel을 이용 ViewModel을 관리하는 ViewModelStore가 있고, 이를 관리하는 ViewModelStoreOwner가 있음. ViewModelStoreOwner는 ComponentActivity와 Fragment에서 구현하고 있음. 따라서 ViewModel 생성 시 바인딩하는 ViewModelStoreOwner는 Activity나 Fragment가 될 것이고, 이것에 따라 ViewModel의 Scope이 결정..
2021.08.12 -
LiveData
LiveData란? 관찰 가능한 데이터 홀더 클래스(쉽게 말해서, 변경되는 데이터를 가지고 있고 다른 곳에서 관찰할 수 있도록 제공해주는 구조) LiveData 특징 observer 등록 시 바인드 된 lifecycle에 따라 자동 관리되어 메모리 릭 잡아줌(observeForever(Observer) 등록은 관련 lifecycle이 없어 직접 해제해야 메모리 릭 생기지 않음(removeObserver(Observer))) lifecycle owner Active : Lifecycle.state#STARTED, Lifecycle.state#RESUMED lifecycle owner Inactive : Lifecycle.state#DESTROYED LiveData 계층 LiveData는 abstract c..
2021.08.12 -
Room
Room이란 ? SQLite 추상화를 제공하는 라이브러리 Room 사용 방법 build 설정 @Entity, @Dao, @Database 클래스 생성 @Database 인스턴스 생성 후 사용 1. build 설정 implementation 'androidx.room:room-runtime:2.2.5' kapt 'androidx.room:room-compiler:2.2.5' // To use Kotlin annotation processing tool (kapt) kapt("androidx.room:room-compiler:$room_version") kotlin에서는 annotation을 사용하기 위해 annotationProcessor가 아닌 kapt 플러그인을 사용해야한다. 해당 플러그인은 build..
2021.08.12 -
[ERROR/EXCEPTION] WebView CrossThreadException
UI 변경 코드(반드시 UI thread만 변경가능)가 자바스크립트 인터페이스를 통한 실행에 포함되어 있어 크로스 스레드 오류가 난다. 예외 처리는 아래와 같이 해결하면 된다. https://aorica.tistory.com/106 [ Android ] a webview method was called on thread 'javabridge' 안드로이드에서 자바스크립트를 호출할 때, A WebView method was called on thread 'javabridge'. All WebView methods must be called on the same thread.라는 메시지가 뜰 때 있습니다. 안드로이드에서 UI 스.. aorica.tistory.com 자바스크립트 인터페이스 함수 -> JavaB..
2021.06.17 -
RxJava 같은 리소스로 여러번 발행하기
이렇게 하면 2초 간격으로 로그 찍어보고 함수 수행 가능 Observable.interval(2, TimeUnit.SECOND) .observeOn(AndroidSchedulers.MainThread()) .subscribe(i->{ Log.i("KMJTEST","url : "+webView.getUrl()); Log.i("KMJTEST","index : "+i+" webview cangoback "+webView.canGoBack()); if(i>2) { // 실행할 함수 } }));
2021.06.17 -
ChildView에 대한 ViewTreeObserver는 같다
ViewTreeObserver는 부모 layout에 달림. ex> R.id.main_layout 이라는 ViewGroup에 FrameLayout 2개가 자식으로 달린 경우 각각의 view.getViewTreeObserver()는 R.id.main_layout 이라는 ViewGroup에 대한 관찰자로 같다. https://faith-developer.tistory.com/188 ViewTreeObserver 그게 뭔데? ViewTreeObserver 단어를 뜯어보면 View Tree + Observer 로 나눌 수 있습니다. Android Developers 에서는 View Tree Observer를 다음과 같이 표현하고 있습니다. View Tree Observer는 리스너 등록을 통하여 Vie.. fai..
2021.06.17