반응형

2025/05 2

[Android]SQLiteDatabase - 트랜잭션 & 비동기 처리

들어가며안드로이드 앱 개발 중 가장 까다로운 문제 중 하나는 데이터베이스 작업과 비동기 처리의 조화입니다. 최근 우리 프로젝트에서 발생한 "attempt to re-open an already-closed object: SQLiteDatabase" 오류를 해결하는 과정에서 배운 교훈과 인사이트를 공유하고자 합니다. 이 글이 같은 문제로 고민하는 개발자들에게 도움이 되길 바랍니다.문제 상황: 데이터베이스 닫힘 오류우리 앱에서는 서버로부터 다양한 데이터(상품, 광고 이미지 등)를 가져와 SQLite 데이터베이스에 저장한 후 이미지 파일을 다운로드하는 기능이 있었습니다. 특히 문제가 발생한 코드는 광고 이미지 데이터를 처리하는 메소드였습니다.이 코드는 간헐적으로 "attempt to re-open an alr..

Android 2025.05.12

[Android] 자바스크립트 인터페이스

자바스크립트 인터페이스란?@JavascriptInterface는 안드로이드 WebView 내에서 실행되는 자바스크립트 코드가 네이티브 자바/코틀린 코드를 호출할 수 있도록 하는 브리지 메커니즘입니다. 이는 마치 서로 다른 언어를 사용하는 두 세계 사이에 통역사를 배치하는 것과 같습니다.1. 기본 작동 원리자바스크립트 인터페이스는 본질적으로 두 개의 완전히 다른 실행 환경을 연결합니다:자바/코틀린 환경: 안드로이드 네이티브 코드가 실행되는 JVM(Java Virtual Machine) 또는 ART(Android Runtime)자바스크립트 환경: WebView 내부의 자바스크립트 엔진(V8 또는 WebKit)이 코드를 실행하는 공간이 두 환경은 원래 다음과 같은 이유로 완전히 격리되어 있습니다:서로 다른 프..

Android 2025.05.08