No meu projeto IntentExamples, eu tenho esse filtro, correspondente a um serviço.
<intent-filter>
<action android:name="biz.rpcodes.apps.intentexamples.START_SERVICE" />
</intent-filter>
Em outro projeto, UseExampleService, tenho algo como:
Intent i = new Intent("biz.rpcodes.apps.intentexamples.START_SERVICE");
startService(i);
... guiado por esta resposta: https://stackoverflow.com/a/16439551/5181778
Minha pergunta é: Como posso gerenciar melhor essas seqüências de filtros de intenção em vários projetos? A melhor solução que tenho agora é criar uma classe que estou copiando e colando do projeto Service nos outros projetos, ou seja:
class ExampleServiceIntents {
public static final String ExampleServiceIntents.START_SERVICE =
"biz.rpcodes.apps.intentexamples.START_SERVICE";
...
Embora eu possa importar as classes de Serviço, new Intent(this, ExampleService.class)
gostaria de manter as classes de Serviço em seu próprio projeto.
java
project-management
android
Rick Page
fonte
fonte
Service
não estar instalado. E você sempre pode criar uma biblioteca que contenha essas constantes e depois usá-la em cada projeto.Respostas:
Bibliotecas compartilhadas do Android ou links simbólicos dependentes do sistema operacional.
Opção 1: Biblioteca Android compartilhada
Uma biblioteca Android formal importada para cada projeto.
Prós : Digite segurança. Plataforma cruzada e funciona com controle de origem. Verificação completa de sintaxe e suporte ao editor.
Contras : Ainda é um pouco chato importar projetos como bibliotecas pelos editores atuais (Android Studio ou Eclipse com ADT), pois eles não oferecem interfaces muito boas para fazer isso. Se você precisar executar essa tarefa com frequência, mas não com tanta frequência, se lembrar de todas as etapas de cada vez, talvez isso não valha a pena. Mas se é uma ou duas vezes, para começar, você não precisa fazer isso novamente, não é tão ruim.
Opção 2 Links Simbólicos
Vincule simbolicamente um arquivo de origem comum em cada projeto. Os dois projetos verão o arquivo e as alterações, para que possam permanecer sincronizados.
Prós : muito mais simples de implementar.
Contras : Links simbólicos não funcionam tão bem com ferramentas de controle de origem. Não é multiplataforma (para desenvolvimento), pois os links simbólicos são muito diferentes de um sistema operacional para outro. Não é claro para um novo desenvolvedor que entra no projeto que as mudanças em um são automaticamente compartilhadas com o outro.
Portanto, como a opção de links simbólicos tem mais contras do que profissionais, geralmente recomendo a solução de biblioteca compartilhada para a maioria dos projetos. Mas, se seu projeto em particular não precisar dos recursos da coluna contras do link simbólico, provavelmente será mais fácil. Depende.
PS: existe uma terceira opção terrível de ter um terceiro aplicativo Android completo que oferece um provedor de dados Android que oferece os valores das strings. Mas, nesse ponto, você precisa se comunicar com esse aplicativo com cadeias especiais que também precisam ser compartilhadas; portanto, você está apenas adicionando uma etapa de abstração, mas não resolveu o problema.
fonte