Ich habe das folgende Szenario in meiner Anwendung. In meiner Anwendung befindet sich keine Benutzeroberfläche. Stattdessen gibt es einen Dienst, der beim Booten startet und kontinuierlich ausgeführt wird.
Wie kann ich meine Manifestdatei ohne Hauptaktivität konfigurieren? Kann ich meine App ohne Aktivität starten? Und beim Starten meiner App sollte mein Dienst gestartet werden. Ist das möglich?
Ich möchte keine durchscheinende Aktivität ausführen, um den Dienst zu starten.
Antworten:
Sie sagten, Sie wollten keine durchscheinende Aktivität verwenden, aber das scheint der beste Weg zu sein, dies zu tun:
Theme.Translucent.NoTitleBar
.setContentView()
.onCreate()
Starten Sie in Ihren Aktivitäten Ihren Service mitstartService()
.finish()
sobald Sie den Dienst gestartet haben.Mit anderen Worten, Ihre Aktivität muss nicht sichtbar sein. Es kann einfach sicherstellen, dass Ihr Dienst ausgeführt wird, und dann beenden, was nach Ihren Wünschen klingt.
Ich würde dringend empfehlen, mindestens eine Toast-Benachrichtigung anzuzeigen, die dem Benutzer anzeigt, dass Sie den Dienst starten oder dass er bereits ausgeführt wird. Es ist eine sehr schlechte Benutzererfahrung, ein Startsymbol zu haben, das beim Drücken nichts zu tun scheint.
quelle
Ja, Sie können dies tun, indem Sie einfach eine erstellen
BroadcastReceiver
, die SieService
beim Start Ihrer Anwendung aufruft . Hier ist eine vollständige Antwort von mir.Android - Dienst beim Booten starten
Wenn Sie kein Symbol / Launcher für Ihre Anwendung möchten, können Sie dies auch tun. Erstellen Sie einfach keine Aktivität mit
Service
Deklarieren Sie einfach Ihre als normal deklariert.quelle
Service
Startvorgangs in Ordnung ist, möchte aber wissen, wie man kein Main hatActivity
, sondern einfach sicherstellen, dass das ausgeführtService
wird, wenn das Startsymbol gedrückt wird.Der Grund, eine App ohne Aktivität oder Dienst zu erstellen, könnte darin bestehen, eine Homescreen Widget-App zu erstellen, die nicht gestartet werden muss.
Sobald Sie ein Projekt gestartet haben, erstellen Sie keine Aktivitäten mehr. Nachdem Sie das Projekt erstellt haben, klicken Sie einfach auf Ausführen. Android Studio wird sagen
No default activity found
.Klicken Sie auf Konfiguration bearbeiten (Aus dem Run - Menü) und in der Startoption Teil setzte die Einführung Wert Nothing . Klicken Sie dann auf OK und führen Sie die App aus.
( Da es keine Launcher-Aktivität gibt, wird im Apps-Menü keine App angezeigt. )
quelle
Android Studio Version 2.3
Sie können einen Dienst ohne Hauptaktivität erstellen, indem Sie einige einfache Schritte ausführen. Sie können diese App über Android Studio installieren und wie eine normale App debuggen.
Erstellen Sie zunächst ein Projekt in Android Studio ohne Aktivität. Erstellen Sie dann Ihre Serviceklasse und fügen Sie den Service Ihrer AndroidManifest.xml hinzu
Gehen Sie nun in der Dropdown-Liste neben der Schaltfläche "Ausführen" (grüner Pfeil) zu "Konfigurationen bearbeiten" und wählen Sie in den "Startoptionen" "Nichts". Auf diese Weise können Sie Ihren Dienst installieren, ohne dass sich Android Studio darüber beschwert, keine Hauptaktivität zu haben.
Nach der Installation wird der Dienst NICHT ausgeführt, aber Sie können ihn mit diesem Befehl adb shell starten ...
Kann überprüfen, ob es läuft mit ...
Ich habe es noch nicht versucht, aber Sie können wahrscheinlich auch Android Studio den Dienst automatisch starten lassen. Dies würde in diesem Menü "Konfigurationen bearbeiten" erfolgen.
quelle