2016-04-14 4 views
0

Offiziell lautet das Flag Enable, ob das Service vom System instanziiert werden kann. Aber was bedeutet das in der Praxis? Sag ich setze android:enabled="false”. Bedeutet das, dass START_STICKY nicht mehr funktioniert? Wie wäre es mit START_REDELIVER_INTENT?Was macht das Enable-Flag für Service?

Antwort

1

Es bedeutet, dass die Service nicht erstellt oder überhaupt nicht ausgeführt wird, unabhängig davon, was von der onStartCommand()-Methode zurückgegeben wird, da es diesen Punkt nie erreichen wird.

mag einfach ein Activity, Service Instantiierung vom System behandelt wird, so dass, wenn die Dokumentation gibt an, dass das System nicht einen Service instanziiert, wenn enabledfalse ist, bedeutet dies, dass die Service einfach nicht ausgeführt werden.

+0

Haben Sie eine Idee, warum ich dieses Flag jemals im Manifest auf false setzen würde? ** –

+1

Sie können Komponenten aktivieren/deaktivieren, die im Manifest mit der Methode 'PackageManager # setComponentEnabledSetting()' registriert sind Wenn Ihr Dienst bei der Installation deaktiviert werden soll, müssen Sie ihn im Manifest auf "false" setzen und dann bei jeder Entscheidung aktivieren. Dies kann nützlich sein, wenn Ihre App z. B. einen 'Dienst' anbietet, der an externe Apps gebunden werden kann, aber nicht, dass die anderen Apps dies tun können, bis eine bestimmte Bedingung erfüllt ist; wie die Überprüfung der Registrierung, die Fertigstellung eines notwendigen Downloads usw. –

+0

Danke, Mike! Jetzt macht es Sinn. –