如何从XML启动服务?

时间:2011-02-01 00:35:02

标签: android xml service preferences

我没有运气从偏好设置屏幕开始获取服务,也无法在线找到任何示例。这就是我正在做的事情:

首选项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 :(得分:0)

错误消息显示会发生什么:您需要启动一个Activity而不是一个Service。尝试构建一个普通的首选项活动并处理那里的设置更改。

答案 1 :(得分:0)

为什么不尝试实现registerOnSharedPreferenceChangeListener并将其连接到复选框或其他内容。这样,您可以以编程方式启动或停止服务。我认为这可能是处理这种情况的更优选方式。如果您需要显示服务的当前状态(是否检查或取消选中),请查看绑定本地服务。

答案 2 :(得分:0)

你可以为你的意图注册一个接收器并从接收器开始服务,如果你想从你的偏好屏幕的任何check.box启动服务,或者你可以使用现有的回调函数onPreference change listners来启动服务于偏好活动..