└ Android Architecture Component(6)
-
[AAC/Room] Exception - Cannot access database on the main thread since it may potentially lock the UI for a long period of time. 해결 방법
1. Exception 확인 java.lang.IllegalStateException: Cannot access database on the main thread since it may potentially lock the UI for a long period of time. 2. 발생 원인 Room 사용 시 쿼리 호출을 MainThread에서 실행했을 경우 발생 3. 해결 방법 allowMainThreadQueries() 메서드를 사용하면 간단하게 해결할 수 있지만 메인 스레드에서 많은 양의 쿼리문을 실행하다 보면 ui가 오랜 기간 동작하지 않을 수 있으므로 사용하면 안 되는 방법이다! 이외에 AsyncTask, RxJava, Coroutine, JavaThread를 사용하여 해결할 수 있습니다 오늘 ..
2020.06.10 -
[AAC/Room] Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number.
Exception 확인 java.lang.IllegalStateException: Room cannot verify the data integrity. Looks like you've changed schema but forgot to update the version number. You can simply fix this by increasing the version number. 해결 방법 1. database version up @Database(entities = [MyBook::class], version = 1, exportSchema = false) 2. fallbackToDestructiveMigration() method 추가 해주기
2020.06.10 -
[Navigation/네비게이션] startDestination programmatically
Android Jetpack 의 네비게이션 컴포넌트를 사용할 때 startDestination을 동적으로 바꿔야 할 때가 있다 그 방법에 대해서 알아보자 먼저 코드 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) val navController = findNavController(R.id.my_nav_host_fragment) val navGraph = navController.navInflater.inflate(R.navigation.navigation) navGraph.startDestination = if(CONDITION) R.id.fragment_one else R.id.fragment_..
2020.06.04 -
[ACC/Room] illegalstateexception pre-packaged database has an invalid schema 해결 방안
illegalstateexception : pre-packaged database has an invalid schema 발생이유 : 데이터베이스 스키마를 수정하였지만 atabase Annotation의 Version값을 올려주지 않았을 경우 (Room will throw an IllegalStateException if you don’t provide a Migration.) 간단 해결 방안 : .allbackToDestructiveMigration() 옵션을 줄경우 따로 Migration정의를 해주지 않아도 되지만 이전에 생성한 데이터베이스를 삭제한 후 새로운 데이터베이스를 생성한다 ... INSTANCE = Room.databaseBuilder( context, MyDB::class.java, "M..
2020.05.28 -
[Android/안드로이드] navigation 사용하기(2) - 구성요소 사용방법
Navigation의 구성요소 사용방법에 대해 알아보겠습니다. Navigation 구성요소 (지난 포스트 참고) Navigation graph : 모든 대상 및 작업을 포함하는 리소스 파일 NavHostFragment : navigation graph에서 대상을 표시하는 빈 컨테이너 NavContoller : NavHost에서 앱 탐색을 관리하는 객체입니다. NavController는 사용자가 앱 내에서 이동할 때 NavHost에서 대상 콘텐츠의 전환을 오케스트레이션합니다. 1. build.gradle(:app) 에 의존성 추가 dependencies { ... //navigation - start // Java language implementation implementation "androidx.na..
2020.04.27 -
[Android/안드로이드] navigation 사용하기(1) - 이론 정리
1. AndroidX 의 Navigation 라이브러리는 ? Navigation은 사용자가 앱 내의 여러 콘텐츠를 탐색하고, 그곳에 들어갔다 나올 수 있게 하는 상호작용을 의미합니다. Android Jetpack의 컴포넌트인 Navigation은 단순한 버튼 클릭해서 좀 더 복잡한 패턴(앱바, 탐색 창)에 이르기까지 여러 가지 탐색을 구현하도록 도와줍니다. Navigation Component는 기존의 원칙을 준수하여 일관적이고 예측 가능한 사용자 환경을 보장합니다. 즉, 네비게이션은 android Jetpack 의 컴포넌트로 앱 화면 전환을 더 편리하게 구현하고 시각화하여 제공해주는 프레임워크 입니다. 2. Navigation의 장점은? 프래그먼트 트랜잭션 처리. 기본적으로 '위로'와 '뒤로' 작업을 ..
2020.04.27