#android #database #service #uri
#Android #База данных #Обслуживание #uri
Вопрос:
Так что я в недоумении, как решить эту проблему из-за моего полного знания Android SDK. Я создал службу, которая получает данные из сети a (назовите ее MyService). Затем другие приложения регистрируют URI в этой службе с идентификатором для типа сообщения. Когда приходит сообщение правильного типа сообщения, мне нужно, чтобы MyService вставлял данные в базу данных приложения с зарегистрированным URI.
«Другие» приложения неизвестны MyService. Итак, учитывая то, что у меня есть… как я могу заставить это работать?
Ответ №1:
Вы должны указать какое-то сопоставление между заданным URI и базой данных, в которую вы хотите поместить полученные данные. Похоже, что у вас возникли проблемы с тем, как вы указываете это сопоставление. Когда другие приложения регистрируют URI в вашей службе, почему бы им также не указать базу данных, в которую должны помещаться любые полученные сообщения для этого URI.
Комментарии:
1. Я думаю, вы неправильно поняли вопрос. У меня есть запущенная служба. Затем сторонние приложения регистрируют URI в службе через AIDL (для этого приложение привязывается к службе). Затем моя служба получает данные из сети и определяет, к какому URI принадлежат данные… Все это работает… Я застрял на том, как поместить данные в базу данных, учитывая только ее URI.
2. Проблема заключается в знании структуры зарегистрированной базы данных.
3. Почему бы также не передать информацию о макете базы данных? Или, что еще лучше, просто инкапсулируйте базу данных в контент-провайдере и включите URI, указывающий, куда должно отправляться полученное сообщение в контент-провайдере.
4. Да, я думал о передаче макета, просто не хотел беспокоиться о том, чтобы получить его через AIDL. Но это решение будет работать. Я решил просто передать необработанные данные для обработки клиентским приложением, что по сути было бы похоже на указание макета базы данных в поставщике контента. Спасибо за вашу помощь.