Android: transmitindo dados entre serviço e atividade

Então, eu estou ficando realmente confuso sobre como fazer tudo isso e eu esperava que alguém pudesse me explicar um pouco.

Eu tenho um serviço que sempre deve estar em execução e, em determinados momentos, ele precisa alertar o usuário de que uma tarefa deve ser concluída (provavelmente por meio de um ícone da barra de notificação). Quando o usuário aceita a tarefa, o serviço precisa examinar o banco de dados local, construir alguns objetos não primitivos e fornecê-los à atividade que acabou de iniciar.

Eu olhei por toda parte e fiquei muito confuso quanto a uma abordagem adequada, por isso tenho algumas perguntas para me ajudar a entender.

Se uma atividade cria um banco de dados SQLite local, o serviço e as atividades desse aplicativo podem acessar o mesmo banco de dados posteriormente?

O serviço e a atividade precisam estar no mesmo ou em pacotes separados? Eu pensaria que não, mas por alguma razão me lembro de ter visto algo sobre isso em outro lugar.

Como eu faria a transmissão de dados do serviço para a atividade? Eu estava pensando em um provedor de conteúdo, mas parece que deveria haver uma maneira mais fácil de o serviço entregar os dados. Semelhante a um Intent, mas para não primitivos.

Desde já, obrigado.

questionAnswers(2)

yourAnswerToTheQuestion