怪异的Android服务无法启动

时间:2013-01-21 17:17:27

标签: android android-service

我的服务无法启动,这有一个奇怪的问题。我有我的清单文件与服务,并已调用它。但它仍然没有打开。

<service
android:name=".com.taxeeta.ForHire"
android:enabled="true" />

调用意图

Intent serviceIntent = new Intent();
serviceIntent.setAction("com.taxeeta.ForHire");
startService(serviceIntent);

服务

public class ForHire extends Service 

我想知道我在这里失踪了什么。

4 个答案:

答案 0 :(得分:3)

更改

android:name=".com.taxeeta.ForHire"

android:name="com.taxeeta.ForHire"

或者服务是否在根包

android:name=".ForHire"

此外,您应该使用Intent.setClass( )而不是setAction,因为您没有为您的服务声明IntentFilter,并且您很可能尝试使用显式意图。

答案 1 :(得分:2)

当您在清单文件中声明服务时,请使用此类。

<service android:name=".ForHire">
<intent-filter>
     <action android:name="com.taxeeta.ForHire" />
</intent-filter>
</service> 

&安培;呼叫服务就像这样。

Intent serviceIntent = new Intent();
serviceIntent.setAction("com.taxeeta.ForHire");
startService(serviceIntent);

有关服务的详细信息,请参阅此文档 http://developer.android.com/guide/components/services.html

答案 2 :(得分:2)

只需调用 startService(new Intent(getApplicationContext(),ForHire.class));

你的一举一切都很好。

无需根据您的清单设置动作。

答案 3 :(得分:1)

您在清单中声明服务时遇到问题。将其更改为:

<service android:name="com.taxeeta.ForHire" />

(注意. [点]已删除)。另外,请确保serviceapplication元素的子元素,这是Android操作系统识别服务的必备元素。