목록안드로이드(Android)/이슈 및 해결 (28)
Simple&Natural
문제는 이러했다. A테이블과 B테이블이 있는데 Room에서 지원하는 Relation 방식으로는 Column 비교 시 대소문자 구분이 안되는 상황. 결국 쌩쿼리를 짜서 뽑아 써야 했다. 다음과 같이 LEFT JOIN을 이용하여 기준이 되는 테이블 A를 모두 포함하도록 하고 해당하는 Symbol 데이터를 붙여주는 방식. @Query("SELECT tickers.*, ticker_symbols.* FROM tickers LEFT JOIN ticker_symbols ON tickers.base_symbol = ticker_symbols.symbol COLLATE NOCASE") fun getAllTickerWithSymbols(): List [TickerSymbol] @Entity(tableName = "tic..
현재 진행중인 프로젝트는 실제 서비스를 목표로 만들고 있다. 그러다보니 연습용 프로젝트와는 달리 사용자들의 예상치 못한 조작에도 폭넓게 대응할 수 있어야 한다. 이번 이슈는 사용자가 고의로 네트워크 작업을 과도하게 요청할 때 이를 막을 수 있는 방법에 대한 고민이다. 현재 특정 API를 이용하여 데이터를 불러오고 있다. 이때 API를 제공하는 쪽에서 초당 1회로 트래픽을 제한하고 있기 때문에 내 경우 자동으로 3초마다 업데이트 되도록 설정을 해놓았다. 그러나 현재 데이터를 요청하는 ViewModel이 파괴되고 다시 만들어지면 3초 이내라도 여러 번 요청이 가능하다. 예를 들어 사용자가 고의적으로 BottomNavigationItem을 여러 번 클릭하는 행위를 하는 경우를 가정할 수 있다. 이렇게 되면 A..
에러로그 Internal error. Please refer to https://code.google.com/p/android/issues java.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.loadDescriptors()[Lcom/intellij/ide/plugins/IdeaPluginDescriptorImpl; at com.a.a.b.b.ar.a(ar.java:121) at com.a.a.b.b.ar.a(ar.java:71) at com.intellij.idea.MainImpl.start(MainImpl.java:19) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:..
Navigation Component의 경우 항상 startDestination을 Defulat Backstack으로 유지한다. The back stack always has the start destination of the app at the bottom of the stack. 출처: developer.android.com/guide/navigation/navigation-principles 즉 해당 Fragment는 다른 Fragment로 이동해도 파괴되지 않고 살아남기 때문에 viewModelScope 관련 작업 시 불편함 점이 생긴다. 내 경우 BottomNavigation에서 Fragment 이동시 기존의 Fragment는 파괴되어야 하는데 항상 Default BackStack이 유지되다 보..