2024/06 3

[Java] Timer의 Fixed-rate Execution의 함정

앱에서 정확한 시간마다 작업을 수행해야할때 Timer.scheduledAtFixedRate를 사용하던 중, 기이한 로그가 발견되었다. 바로 아주 짧은 시간에 여러번 호출되는 현상! 문서를 보면 메소드에 대한 대략적인 설명은 이렇다. scheduleAtFixedRate(TimerTask task, Date firstTime, long period)Schedules the specified task for repeated fixed-rate execution, beginning at the specified time.지정된 시간부터 고정된 간격으로 반복적으로 작업을 수행하도록 예약한다. 이 "Fixed-rate execution"에는 함정이있다.메소드를 눌러 문서를 더 자세히 살펴보면 다음과 같은 문단을 발..

의존성을 가지는 Initializer 만들기

Android Jetpack 라이브러리 중 하나인 App Startup은 안드로이드 앱 구동에 필요한 초기 설정들을 체계적으로 초기화하는데 유용한 라이브러리다. 아래는 App Startup의 사용 예시 코드인데, dependencies 함수를 보면 예시 코드의 로거 Initializer는 WorkManagerInitializer에 의존하고 있음을 알 수 있다.// Initializes ExampleLogger.class ExampleLoggerInitializer : Initializer { override fun create(context: Context): ExampleLogger { // WorkManager.getInstance() is non-null only after ..