我的服务无法启动,这有一个奇怪的问题。我有我的清单文件与服务,并已调用它。但它仍然没有打开。
<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
我想知道我在这里失踪了什么。
答案 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" />
(注意.
[点]已删除)。另外,请确保service
是application
元素的子元素,这是Android操作系统识别服务的必备元素。