Я хочу открыть database
один раз только с главного экрана моего приложения, и я хочу использовать этот экземпляр в любом месте любого из activity
. Возможно ли это, или я должен сделать context
для каждого фактического открытия activity
, чтобы я должен создать экземпляр базы данных (открыть) в каждом activity
?Должен ли контекст SQLiteOpenHelper всегда работать?
1
A
ответ
3
Возможно ли это или я должен сделать контекст быть каждый фактический открыт активность, так что я должен создать экземпляр базы данных (открытого) в каждой деятельности?
возможно, и вы можете использовать контекст приложения. Ваш DBHelper
может быть синглом. Например
public class DBHelper extends SQLiteOpenHelper {
private static DBHelper sInstance;
public static synchronized DBHelper getInstance(Context context) {
if (sInstance == null) {
sInstance = new DBHelper(context.getApplicationContext());
}
return sInstance;
}
private DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}
+0
не использовался ... * посмотрите ближе * –
3
Вам не нужно, чтобы закрыть и повторно открыть соединение SQL на каждый отдельный Activity
.
Сказав это - лучше всего открыть соединение, используя контекст приложения, чтобы избежать Activity leaks.
Вы можете получить контекст контекста приложения quite easily.
Смежные вопросы
- 1. Должен ли я закрывать объект SQLiteOpenHelper?
- 2. Контекст null при тестировании SQLiteOpenHelper класс
- 3. Должен ли использоваться SQLiteOpenHelper (Android) в службе или AsyncTask?
- 4. Должен ли я называть .close() на обоих SQLiteDatabase и SQLiteOpenHelper
- 5. Является ли контекст пользовательских представлений всегда активностью?
- 6. Должен ли Office.initialize всегда задаваться?
- 7. Должен ли этот код работать?
- 8. Должен ли я всегда удалятьEventListener?
- 9. Должен ли процесс всегда прекращаться?
- 10. Должен ли я чаще использовать контекст EF?
- 11. Должен ли коммутатор linux переключиться в контекст?
- 12. Должен ли мой контекст быть .net-типом?
- 13. Селектор Контекст не всегда Действителен?
- 14. Должен ли PM2 God Daemon работать?
- 15. андроид-студия, не может разрешить символ SQLiteOpenHelper, контекст
- 16. Должен ли булевой флаг всегда быть атомарным?
- 17. Должен ли этот For-Loop теоретически работать?
- 18. Android: Могу ли я визуально работать всегда?
- 19. Будет ли этот алгоритм работать всегда?
- 20. Будет ли такой код работать всегда?
- 21. Должен ли контекст структуры Entity быть использован в приложении?
- 22. Должен ли мы всегда возвращать объект обратно в контекст в Install4j?
- 23. контекст приложения всегда возвращается нуль
- 24. Должен «перерыв страницы: всегда;» работать, если применяется внутри DIV?
- 25. Должен ли я всегда использовать GL_CULL_FACE?
- 26. Должен ли я всегда заполнять объект TaskCompletionSource?
- 27. Должен ли доступ всегда быть самым низким?
- 28. Должен ли jquery.data() работать в сценариях Greasemonkey?
- 29. Должен ли я всегда открывать сеанс?
- 30. Игра: должен ли вы всегда использовать Action.async?
Сделайте это из подкласса Service или Application (ApplicationContext), таким образом, вы будете иметь соединение и блокировку/синхронизацию, доступные в любой деятельности –
, можете ли вы объяснить более четко? – pheromix