Как запустить сервис из XML? - PullRequest
1 голос
/ 01 февраля 2011

Мне не повезло заставить сервис запускаться с экрана настроек, и я не могу найти никаких примеров в Интернете. Вот что я делаю:

Предпочтительный XML:

<PreferenceScreen
    android:title="Start Service">
    <intent
        android:action="com.test.app.myservice" />
</PreferenceScreen>

Манифест:

<service
    android:enabled="true"
    android:name=".myservice">
    <intent-filter>
        <action
            android:action="com.test.app.myservice" />
    </intent-filter>
</service>

Ошибка:

ERROR/AndroidRuntime(7912): android.content.ActivityNotFoundException: 
No Activity found to handle Intent { act=com.test.app.myservice }

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 01 февраля 2011

Почему бы не попробовать реализовать registerOnSharedPreferenceChangeListener и подключить его к флажку или чему-то еще.Таким образом, вы можете запускать или останавливать службу программно.Я думаю, что это, вероятно, более предпочтительный способ справиться с этой ситуацией.Если вам необходимо показать текущее состояние службы (для проверки или отмены), посмотрите привязку локальной службы.

0 голосов
/ 01 февраля 2011

вы можете зарегистрировать получателя для своего намерения и запустить службу от получателя, это для того, чтобы начать запуск службы с любого флажка на вашем экране предпочтений, или же вы можете использовать существующие функции обратного вызова в списках изменения предпочтений для запускауслуги по предпочтению деятельности ..

0 голосов
/ 01 февраля 2011

Сообщение об ошибке показывает, что происходит: вам нужно запустить действие, а не службу.Попробуйте создать нормальное предпочтительное действие и обработайте изменение настроек там.

...