一、Service 简介
Service有 local 和 remote 两种类型。
local 主要是用于本地的应用程序之间的调用,remote 主要用于不同应用或者进程之间,这里用到 AIDL IPC 机制。
关于 AIDL IPC 机制可以参阅 SDK DEV Guide!
当然,你要是想完全理解这种机制可能要花费点时间哟,不过还好,我只是用一下,呵呵!~ ~
二、Service 与进程
android 各个组件之间默认运行在同一个进程之中,它们有各自所在的进程来管理,它们是主线程的一部分而不是系统开启的线程。
也就是说,要是在这些组件(包括 service)中做耗时比较长的操作需要另起线程。
这里需要说明,你可以通过 android:process=属性说明应用组建的所属进程。
三、远程 Service
先看看文件目录结构吧
在对应的包下面新建一个 AIDL 文件,这里是 IMusicService.aidl 文件。
那么 ADT 会自动的为你生成对应的 java 源文件。
IMusicService.aidl 文件:
这样,我们就可以在应用程序中使用它啦...
Activity 中我是这样做的:
最后,别忘记在 manifest.xm 文件中声明:
cmd 一下,在命令行中 adb shell ps 查看 android 应用程序的 PID 以及进程 ID。