목록안드로이드(Android)/이슈 및 해결 (27)
Simple&Natural
현재 진행중인 프로젝트는 실제 서비스를 목표로 만들고 있다. 그러다보니 연습용 프로젝트와는 달리 사용자들의 예상치 못한 조작에도 폭넓게 대응할 수 있어야 한다. 이번 이슈는 사용자가 고의로 네트워크 작업을 과도하게 요청할 때 이를 막을 수 있는 방법에 대한 고민이다. 현재 특정 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이 유지되다 보..
내가 겪었던 문제는 아니지만 얼마 전 아는 개발자 분의 문제를 함께 해결해주면서 있었던 이슈이다. 이 부분은 예전에 채팅앱을 만들 때 서비스를 다루면서 알고 있던 부분이라 다행히 바로 찾아낼 수 있었다. 문제인즉슨, 앱이 종료 유무에 관계없이 지속적으로 카운팅이 유지되는 기능이 필요한데 앱을 껐다 키면 카운팅이 새롭게 시작되는 현상이었다. 소스코드를 부탁드리고 문제의 원인을 분석해보았다. 원인은 의외로 간단했는데 바로 카운팅 작업을 다루는 서비스를 액티비티에 단지 바인드만 시킨 것이 문제였다. 안드로이드 공식 문서에서는 다음과 같은 내용을 찾을 수 있다. Bound A service is bound when an application component binds to it by calling bindSe..