본문 바로가기

안드로이드9

HiltWorker사용시 Could not create Worker 오류 해결 Hilt로 WorkManager를 Inject하려면 WorkerFactory를 만들어서 넘겨줘야한다. @HiltAndroidApp class ExampleApplication : Application(), Configuration.Provider { @Inject lateinit var workerFactory: HiltWorkerFactory override fun getWorkManagerConfiguration() = Configuration.Builder() .setWorkerFactory(workerFactory) .build() } workManager 2.6.0-alpha01부터는 startup을 사용해 초기화하기 때문에 AndroidManifest에서 startup을 사용하지 않게 변경하거.. 2022. 12. 13.
국가별 날짜 시간 패턴 가져오기 우리나라는 대부분의 경우 년/월/일의 순서로 표기하지만 미국은 월/일/년의 순서로 표기한다. 이렇게 국가마다 날짜와 시간의 포멧이 다고 숫자 사이에 단위도 그 나라의 문자를 사용해야 하기 때문에 API에서 제공하는 포멧터을 사용해서 변환하는 것이 좋다. 사용 방법은 포멧터로 날짜나 시간을 넘기고 SHORT, MEDIUM, LONG, FULL 등의 스타일을 넘기면 된다. 그런데 스타일이 아니라 구체적인 포멧(예: yyyyMMdd)을 가져와 사용해야 한다면 다음 메서드를 사용하면 된다. DateTimeFormatterBuilder.getLocalizedDateTimePattern( FormatStyle dateStyle, FormatStyle timeStyle, Chronology chrono, Locale.. 2022. 12. 7.
안드로이드 에뮬레이터 시간 안맞을 때 1. 기기의 설정에서 타임존 미국이나 기타 국가로 되어있는건 아닌지 확인 2. 네트워크 시간 사용이 꺼져있다면 사용하는 것으로 변경 3. 그래도 안맞다면 에뮬레이터 재부팅 - 에뮬레이터를 종료하는게 아니라(창을 닫아 꺼버리는거 말고) 에뮬레이터의 전원 버튼으로 재부팅 해결! 2021. 11. 24.
SQLite 쿼리 로그 보기 + Room에서 쿼리 로그 보기 에뮬레이터나 루팅된 기기라면 간단히 태그를 VERBOSE로 설정하면 된다. adb shell setprop log.tag.SQLiteStatements VERBOSE SQLite의 정보성 로그를 보고려면 adb shell setprop log.tag.SQLiteLog VERBOSE 쿼리의 실행 시간을 보고 싶다면 adb shell setprop log.tag.SQLiteTime VERBOSE 출처 https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/database/sqlite/SQLiteDebug.java#43 Room을 사용하면 데이터베이스를 생성할 때 QueryCallback에서 로그를 출력할 수 있다.. 2021. 11. 24.