In meinem Projekt IntentExamples habe ich diesen Filter, der einem Dienst entspricht.
<intent-filter>
<action android:name="biz.rpcodes.apps.intentexamples.START_SERVICE" />
</intent-filter>
In einem anderen Projekt, UseExampleService, habe ich so etwas wie:
Intent i = new Intent("biz.rpcodes.apps.intentexamples.START_SERVICE");
startService(i);
... geleitet von dieser Antwort: https://stackoverflow.com/a/16439551/5181778
Meine Frage lautet: Wie kann ich diese Absichtsfilterzeichenfolgen am besten über mehrere Projekte hinweg verwalten? Die beste Lösung, die ich jetzt habe, besteht darin, eine Klasse zu erstellen, die ich kopiere und aus dem Service-Projekt in die anderen Projekte einfüge, dh:
class ExampleServiceIntents {
public static final String ExampleServiceIntents.START_SERVICE =
"biz.rpcodes.apps.intentexamples.START_SERVICE";
...
Während ich die Serviceklassen selbst importieren könnte new Intent(this, ExampleService.class)
, möchte ich die Serviceklassen in ihrem eigenen Projekt behalten.
java
project-management
android
Rick Page
quelle
quelle
Service
nicht installiert ist. Sie können jederzeit eine Bibliothek erstellen, die diese Konstanten enthält, und diese Bibliothek dann in jedem Projekt verwenden.Antworten:
Gemeinsame Android-Bibliotheken oder betriebssystemabhängige symbolische Links.
Option 1: Gemeinsame Android-Bibliothek
Eine formale Android-Bibliothek, die in jedes Projekt importiert wird.
Vorteile : Typensicherheit. Plattformübergreifend und arbeitet mit Quellcodeverwaltung. Vollständige Syntaxprüfung und Editorunterstützung.
Nachteile : Es ist immer noch etwas ärgerlich, Projekte als Bibliotheken über die aktuellen Editoren (Android Studio oder Eclipse mit ADT) zu importieren, da sie dafür keine sehr guten Schnittstellen bieten. Wenn Sie diese Aufgabe oft, aber nicht so oft ausführen müssen, dass Sie sich jedes Mal an alle Schritte erinnern, ist dies möglicherweise nicht die Mühe wert. Aber wenn es ein oder zwei Mal ist, dann müssen Sie es nicht noch einmal tun, es ist nicht so schlimm.
Option 2 Symbolische Links
Verknüpfen Sie symbolisch eine gemeinsame Quelldatei in jedem Projekt. Dann sehen beide Projekte die Datei und ändern sie, damit sie synchron bleiben können.
Vorteile : Viel einfacher zu implementieren.
Nachteile : Symbolische Links funktionieren mit Tools zur Quellcodeverwaltung nicht so gut. Nicht plattformübergreifend (für die Entwicklung), da sich symbolische Verknüpfungen von Betriebssystem zu Betriebssystem stark unterscheiden. Für einen neuen Entwickler, der in das Projekt eintritt, ist nicht klar, dass Änderungen in einem automatisch mit dem anderen geteilt werden.
Daher würde ich die Lösung für gemeinsam genutzte Bibliotheken für die meisten Projekte empfehlen, da die Option für symbolische Links mehr Nachteile als Vorteile hat. Wenn Ihr spezielles Projekt jedoch nicht die Funktionen aus der Nachteile-Spalte des symbolischen Links benötigt, ist dies wahrscheinlich einfacher. Es hängt davon ab, ob.
PS: Es gibt eine schreckliche dritte Option für eine dritte vollständige Android-Anwendung, die einen Android-Datenprovider bietet, der die Zeichenfolgenwerte bereitstellt. Zu diesem Zeitpunkt müssen Sie jedoch mit dieser App über spezielle Zeichenfolgen kommunizieren, die ebenfalls freigegeben werden müssen. Sie fügen also nur einen Abstraktionsschritt hinzu, haben das Problem jedoch nicht gelöst.
quelle