Auto-start-Anwendung, die nach dem starten beendet in Android
Ich soll einen Antrag stellen, und die auto-start-option in den Einstellungen. Habe ich gemacht Einstellungen-Aktivität in meiner Anwendung, die abgeleitet ist von PreferenceActivity und geben CheckBoxPreference für auto-start-option. Wenn auto-start-option aktiviert ist, wird meine Anwendung starten soll, wenn das Booten des Telefons abgeschlossen ist. Und wenn die Autostart-option deaktiviert ist, dann sollte es nicht starten, auf dem boot abgeschlossen.
Um dies zu erreichen habe ich umgesetzt abgeleitete Klasse von BroadcastReceiver empfängt BOOT_COMPLETED Absicht erklären-Empfänger in AndroidManifest.xml und auch die Erlaubnis geben, in AndroidManifest.xml.
In der Anwendung gibt es auch eine abgeleitete Klasse der Anwendung und start-service auch aus der onCreate-Methode der application-Klasse abgeleitete Klasse. Wenn ich erkläre Empfänger in AndroidManifest.xml dann nach dem Booten abgeschlossen onCreate meiner Bewerbung angerufen und nach, dass onReceive-Methode der BroadcastReceiver genannt.
Das problem ist jetzt, dass meine Anmeldung startet am boot abgeschlossen jedes mal, ob auto-start aktiviert oder deaktiviert werden. Ist es möglich, nicht die Anwendung starten wenn der automatische start deaktiviert ist ?
InformationsquelleAutor Khushbu Shah | 2012-01-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die gemeinsame Nutzung der Vorzug zu speichern, die einen booleschen Wert für
isAutoStartEnabled
, und überprüfen Sie diesen Wert in der BroadcastReciver, Feuer ein Vorsatz nur, wenn es stimmt.In deinem Fall, das problem ist nicht, ob Sie die Sendung aufzunehmen, aber wer erhält die Sendung. Viel Glück..
Ich hoffe es hilft..
Können Sie nach dem Inhalt Ihrer manifest-Datei ?, Ich denke, das problem kann es liegen...
Bitte stellen Sie sicher, dass Sie in der manifest-Datei der intent-filter für BOOT_COMPLETE nicht mit Ihrer Aktivität-tag, aber mit dem Receiver-tag.
Ya. es ist im receiver-tag. Anwendung empfängt Boot abgeschlossen Absicht jedes mal perfekt, sodass es kein problem ist in der manifest-Datei. Ich will nicht erhalten Sie jedes mal.
Haben Sie überprüfen, ist die Tätigkeit, die begonnen wird BOOT_COMPLETE registriert ist, erhalten die BOOT_COMPLETE broadcast ?
InformationsquelleAutor R.daneel.olivaw
Ich denke, aus Android 3.1 aufwärts Ihre BroadcastReceiver empfängt
BOOT_COMPLETED
Absicht, seine nicht zur Arbeit gehen. Benutzer müssen im Zuge der Anwendung interagiert mit ihm.So, Nach dem Hochfahren des Geräts alle Drittanbieter-Anwendung liegen als Anschlag.
Und für derzeit Ihre Anwendung, die Sie verwenden können
SharedPreferences
für Auto-Start Ihrer Anwendung..UPDATE: (Nur für die Android-version unter 3.1 für die höhere version es funktioniert, aber Sie haben, um die Interaktion der Nutzer mit Ihrer Anwendung nach dem Booten abgeschlossen auf Gerät)
Müssen Sie eine
BroadcastReceiver
mitandroid.intent.action.BOOT_COMPLETED
Absicht.Fügen Sie die folgende, um Ihre manifest-Datei:
App_Receiver Klasse Umsetzung BoradcastReciever. Umsetzung der
onReceive()
Methode und starten Sie Ihre Lieblings-Aktivität in Ihrer app.Ich habe geschrieben, dass es bereits in der Anwendung. Und es funktioniert perfekt, aber ich nicht mehr erhalten möchten, Absicht jedes mal, denn es startet die Anwendung jedes mal. Ist es möglich, nicht erhalten boot abgeschlossen Absicht, in jeder Zeit ?
Nein, Wenn Sie sich registrieren, alle broadcast-receiver dann bei jeder Aktion stellen Sie auf dem Gerät für die Aussendung dann haben Sie es, Sie nicht kontrollieren können, nach dem registrieren.. Nur benutzen auf Ihren Zustand..
Die Verwendung von Dateien für die Einstellungen zu speichern. Und überprüfen Sie Sie in Ihrem Auto-Start-Recever.
Aktualisiert, Danke..
InformationsquelleAutor user370305
Müssen Sie die uses-permission
android.permission.RECEIVE_BOOT_COMPLETED
in Ihrem Manifest.InformationsquelleAutor Kammaar
Ich hoffe das hilft dir
Können Sie bitte fügen Sie Ihren code in main thread
Von Einstellungen wenn Sie die Markierung entfernen, In SharedPreference set "isAutoStartEnabled" Wert auf "false" sonst machen es wahr. Und Im Boot-rundum-check "isAutoStartEnabled" Wert von SharedPreference.
InformationsquelleAutor Nishant Shah
Folgende code funktioniert bei mir:
InformationsquelleAutor ksu