下载此文档

Android系统在新进程中启动自定义服务过程(startService)的原理分析.pdf


文档分类:IT计算机 | 页数:约26页 举报非法文档有奖
1/ 26
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 26 下载此文档
文档列表 文档介绍
Android 系统在新进程中启动自定义服务过程(startService)的
原理分析
在编写 Android 应用程序时,我们一般将一些计算型的逻辑放在一个独立的进
程来处理,这样主进程仍然可以流畅地响应界面事件,提高用户体验。Android 系
统为我们提供了一个 Service 类,我们可以实现一个以 Service 为基类的服务子类,
在里面实现自己的计算型逻辑,然后在主进程通过 startService 函数来启动这个服
务。在本文中,将详细分析主进程是如何通过 startService 函数来在新进程中启动
自定义服务的。
在主进程调用 startService 函数时,会通过 Binder 进程间通信机制来通知
ActivitManagerService 来创建新进程,并且启动指定的服务。在 Android 系统中,
Binder 进程间通信机制使用非常广泛,因此,希望读者在继续阅读下面的内容之前,
对 Android 系统和 Binder 进程间通信机制有一定的了解,具体可以参考前面 Android
进程间通信(IPC)机制 Binder 简要介绍和学习计划一文。
关于 startService 的具体用法,可以参考前面 Android 系统匿名共享内存
Ashmem(Anonymous Shared Memory)简要介绍和学习计划一文中用到的实例,
它是 Activity 类的一个成员函数:
view plain
1. package ;
2.
3. ......
4.
5. public class Client extends Activity implements OnClickListener {
6. ......
7. IMemoryService memoryService = null;
8. ......
9.
10. ***@Override
11. public void onCreate(Bundle savedInstanceState) {
12. ......
13.
14. IMemoryService ms = getMemoryService();
15. if(ms == null) {
16. startService(new Intent(""));
17. } else {
18. (LOG_TAG, "Memory Service has started.");
19. }
20.
21. ......
22.
23. (LOG_TAG, "Client Activity Created.");
24. }
25.
26. ......
27. }
这里的“”是在程序配置文件 配
置的 Service 的名字,用来告诉 Android 系统它所要启动的服务的名字:
view plain
1. <manifest xmlns:android="http://schemas./apk/res/android"
2. package=""
3. android:sharedUserId=""
4. android:versionCode="1"
5. android:versionName="">
6. <application android:icon="***@drawable/icon" android:label="***@string/ap
p_name">
7. ......
8. <service
9. android:enabled="true"
10. android:name=".Server"
11. android:process=".Server" >
12. <intent-filter>
13. <action android:name=""/>
14. <category android:name="
ULT"/>
15. </intent-filter>
16. </service>
17. </app

Android系统在新进程中启动自定义服务过程(startService)的原理分析 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 26
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 翩仙妙玉
  • 文件大小 0 KB
  • 时间2012-11-04
最近更新