0

Althoung Я нашел пару интересных сообщений по этой теме, ни одна из них не связана с подобным случаем или подобным. Я разрабатываю приложение, которое использует API GoogleMaps для отображения карты, и я хотел бы иметь базу данных, в которой будут использоваться для хранения всех моих точек интереса (места, например, полицейские участки, больницы, всего 478 человек), которые будут размещены на карте, как маркеры.Лучший способ справиться с созданием и чтением базы данных sqlite

Эти значения будут вставлены только один раз, когда приложение будет запущено в первый раз, поэтому я бы предположил, что для этого мне не нужны несколько потоков или несколько экземпляров SQLiteHelpers. Наверное, одного из них должно быть достаточно для выполнения работы или нет? Возможно, важно отметить, что у пользователей не будет возможности взаимодействовать с базой данных.

У меня есть два действия до сих пор, сначала моя InitActivity, где я готовлю некоторые и проверяю пару важных для приложения вещей, а второй - это MainActivity. Я хотел бы начать с вставки данных в InitActivity, как только приложение запустится, но если можно не дождаться завершения всего процесса, чтобы запустить MainActivity, но и запустить его также при вставке данных. После финишной обработки я хотел бы вызвать другой метод, который поместит маркер для каждой точки интереса на карте. Этот метод должен быть выполнен из MainActivity. Поэтому мне понадобится фоновая задача, которая начинается в одном действии и сообщает о другой деятельности, что действие завершено.

Итак, что я могу использовать для выполнения такого рода данные, вставив задачи и что будет лучшим способом это сделать (например, AsyncTask - но можно уведомить другую деятельность, что процесс завершен)

Thx заблаговременно

ответ

1

Вы в значительной степени пытаетесь изобрести здесь колесо, которое растрачивает усилия, поскольку эта вещь уже придумана долгое время. Вы, скорее всего, были бы довольны такими инструментами, как Android SQLiteAssetHelper или другими подобными помощниками.

Android SQLiteAssetHelper

Android вспомогательный класс для управления созданием базы данных и версии управления с использованием исходных файлов активов приложения.

Этот класс предоставляет разработчикам простой способ отправить свои приложения Android с существующей базой данных SQLite (который может быть предварительно заполненного данных) и управлять его первоначальное создание и любые обновления требуется с последующей версии выпусков.

Он реализован как расширение для SQLiteOpenHelper, обеспечивающий эффективный способ реализации ContentProvider для отложенного открытия и обновления базы данных до первого использования.

Вместо реализации OnCreate() и onUpgrade() методы в выполнить кучу операторов SQL, разработчики просто включить надлежащим образом именованные файлы активов в каталоге ресурсов своего проекта. Они будут включать в себя исходный файл базы данных SQLite для создания и при необходимости любые сценарии обновления SQL.