总结下 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