Если вы этого еще не сделали, создайте класс, который абстрагирует доступ к вашей базе данных, и сохраните его в RuntimeStore. Откуда бы вы ни собирались взаимодействовать с SQLite, получите ссылку на этот класс, используя GUID, с которым вы его сохранили (RuntimeStore.get (long)), и синхронизируйте класс, как обычно (блокировка объекта-члена, синхронизированные методы).
НЕ просто используйте шаблон синглтона в стиле Википедии, поскольку он не является настоящим синглтоном среди процессов на этой платформе.
См:
http://www.blackberry.com/developers/docs/5.0.0api/net/rim/device/api/system/RuntimeStore.html
Пример:
class SQLManager {
private static long GUID = 0xa178d3ce564cae69L; // hash of com.stackoverflow.SQLManager
private SQLManager() {
// ctor stuff here
}
public static SQLManager getInstance() {
RuntimeStore rs = RuntimeStore.getRuntimeStore();
SQLManager instance = rs.get(GUID);
if (instance == null) {
instance = new SQLManager();
rs.put(GUID, instance);
}
return instance;
}
}
Вы по-прежнему используете одноэлементный «шаблон» как таковой, но сохраняете экземпляр объекта в RuntimeStore при первом вызове getInstance, а затем извлекаете его из RuntimeStore - используя указанный GUID.