Skip to content
This repository has been archived by the owner. It is now read-only.
A simple SQLite Database manager that handles threading/synchronization issues
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This was once developing into a really nice library, but I no longer write Android code, and this is years old and has bugs. I will not be maintaining or updating it.


Update! There is an updated version available at but as the branch name suggests I have not tested it. I need someone else to test it and let me know if it works right and I'll commit to the master branch. You can email me at

For current information and future updates, see which I will add info to as I have time.

A simple SQLite Database manager that handles threading/synchronization issues

If you're just using this class as it currently is, just copy/paste the source into a new java file in your Andriod project, then extend DatabaseManager (instead of SQLiteOpenHelper) for each database you want on-disk

A very similar implentation of this is included in my Android SQLite Library found at

I personally don't recommend using Android's SQLiteDatabase and SQLiteOpenHelper classes directly. There are quite a few other options, such as greenDao, sugarOrm, OrmLite for Android, JQL (mine), and more. I'm working on compiling a list of options with some basic about pages and how-to guides on my forum at (which will soon be moved to the above site) so that you can compare and choose which is best for you.

Basic usage:

MyDatabaseManager dbManager = new MyDatabaseManager(context);//this opens the database
SQLiteDatabase db = dbManager.getDb();
//Later, I will make DatabaseManager interface with SQLiteDatabase directly, just so nobody uses it wrong.
db.someFunction();//use the SQLiteDatabase instance as you normally would.
//close the database when you're completely done.
//for activities, opening (instantiating) in onStart and closing in onStop is a good practice because it prevents from leaking connections.
//if you need it in onCreate, then open it there and conditionally open in onStart, then always call close in onStop and conditionally in onDestroy (if onStop was skipped).
You can’t perform that action at this time.