Основываясь на моем прошлом опыте в Java, я бы сказал, что лучше закрыть соединение, это, вероятно, не имеет значения в небольшом приложении для Android, но если у вас 10 приложений, и все они обращаются к базе данных, вы имеют 10 ожидающих соединений. Начните еще несколько, и рано или поздно другому приложению придется ждать, потому что SQL-сервер не может обрабатывать больше запросов.
Я думаю, вы могли бы подумать об этом как о файле на своем компьютере. Вы читаете данные из него, а затем закрываете его, когда делаете это. Зачем хранить файл в своем приложении?
Теперь я очень новичок в программировании на Android, поэтому мне не удалось реализовать вызовы базы данных. Но когда я столкнулся с той же проблемой в Java-приложении несколько лет назад, я реализовал объект базы данных, в котором у меня было соединение с базой данных. «Все остальные» (классы) должны были вызвать объект базы данных (singleton или final methods) для получения данных, вроде хранимых процедур, но в приложении.
Из-за этого я знал, когда звонки, где были сделаны, и когда они остановились. Затем я ввел тайм-аут, так что, если ничего не произошло через несколько минут, я бы закрыл соединение с db. (Это также позаботилось о некоторых исключениях таймаута, потому что тайм-аут подключения никогда не произойдет.) Когда вошел новый вызов, я мог бы легко начать новое соединение и использовать новое соединение db.
В основном я отвлек SQL-запросы, используя методы как public Fungus[] getAllFungus()
и public Fungus[] getFilteredFungus(string where)
.
Если вы используете базу данных в Android, вы должны использовать 'SQLiteOpenHelper' или' ContentProvider' для управления вашими подключениями. Затем вы можете вернуть 'Cursor', который позволяет вам перебирать результирующий набор или легко размещать его в списке. –