service 设置之乱

总结下 service 会遇到的设置问题

1.客户端和服务端的 aidl 文件要放在相同的文件夹内 比如 服务端的aidl 文件放在 com.ipc.file 下 那么 要调用此服务的客户端奕要在自己的目录建立com.ipc.file包并将AIDL文件放在此包下

2. 过滤器问题 

例: AIDL 文件  ITEXT.AIDL

刚过滤器 设置的地址为 完整的包路径 + ITEXT.AIDL

            <intent-filter >
<action android:name="com.lo.Service.ITEXT" />
</intent-filter>

3. 服务文件位置问题

例子:

    <application android:icon="@drawable/icon" android:label="@string/app_name">  
<activity android:name=".UpdateStatusActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name=".ViewSnsActivity"
android:label="@string/app_name">
</activity>

每一个Activity、Service等应用程序组件都会对应AndroidManifest.xml文件中的一个<activity>、<service>标签。在这些标签中有一个必选的属性:android:name,该属性需要指定一个类名,像上面的.UpdateStatusActivity和android.intent.action.MAIN。大家发现这两个有什么不同了吗,对了。第一个是.的方式而第二个是全路径的方式。指定android:name属性值有3种方式,如下:


1.  指定完全的类名(packagename+classname),例如,net.blogjava.mobile.Main。

2.  只指定类名例如,.Main,其中Main前面的“.”是可选的。该类所在的包名需要在<manifest>标签的package属性中指定。

3.  指定相对类名这种方式类似于第2种方式,只是在<activity>标签的android:name属性中不光指定类名,还有部分包名。例如,如果Main类在net.blogjava.mobile.abcd包中,就可以在<manifest>标签的package属性中指定net.blogjava.mobile,然后在<activity>标签的android:name属性中指定.abcd.Main。

android:name="包的完整路径.UpdateStatusActivity"


如想简单点可以直接将 extends service 的文件拷回主包

欢迎各位同学加入 android 技术群 155595043

原文地址:https://www.cnblogs.com/ondream/p/2377589.html