Я бы пошел с открытием / закрытием базы данных, когда действие возобновляется / приостанавливается, хотя ваш последний вариант тоже подойдет.
Для меня это закрытие, когда пользователь завершил редактирование всего списка, а не когда пользователь закончил с конкретным элементом. Лучше с точки зрения производительности? Ну, это зависит от размера вашей базы данных.