首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

SystemServer Serivce 起动 与 获取 (addService ,checkService )

2012-08-25 
SystemServer Serivce 启动 与 获取 (addService ,checkService )? ? ? 在系统启动的时候,会做一系列初始

SystemServer Serivce 启动 与 获取 (addService ,checkService )

? ? ? 在系统启动的时候,会做一系列初始化的工作包括service的创建。所以要了解系统中有多少种类的服务,每一类的服务都是如何实现的,这是一个最好的入口。这就直接从代码入手进行解析:

? ? ? 转载请注明(http://ishelf.iteye.com/blog/1027886)

? ? ? 首先在SystemServer的run方法中,有如下代码

?

 



    public void onReceive(Context arg0, Intent arg1) {          // 启动服务           Intent service = new Intent(arg0, MyService.class);          arg0.startService(service);       } 

如果说广播监听是广播这个类被实例后才能监听的,那怎么监听系统开机的广播呢?开机前不可能实例好广播的这个类的吧



1.监听特定事件需要相关的服务广播该事件,也就是说相关服务要启动(你的.MybootReceiver肯定是在ActivityManagerService之后启动的)。如果是activity的话,也可以广播事件,不过生命周期有限,不能一直跑在后台,可能我在解释的时候没有提及activity所以导致误解。
2.你的Receiver只能说明你可以监听到boot完成的事件,怎么可以自启动呢。
3.你的监听事件是为了启动一个新的服务,而不是为了监听某一个服务所发出的事件。


====该没什么问题了吧。我两说的不是一回事了,呵呵 5 楼 busiying119 2011-05-18   ishelf 写道
1.监听特定事件需要相关的服务广播该事件,也就是说相关服务要启动(你的.MybootReceiver肯定是在ActivityManagerService之后启动的)。如果是activity的话,也可以广播事件,不过生命周期有限,不能一直跑在后台,可能我在解释的时候没有提及activity所以导致误解。
2.你的Receiver只能说明你可以监听到boot完成的事件,怎么可以自启动呢。
3.你的监听事件是为了启动一个新的服务,而不是为了监听某一个服务所发出的事件。


====该没什么问题了吧。我两说的不是一回事了,呵呵
谢~谢~楼~主啊~你的帖子促使我已经搞明白广播、启动服务、自定义广播,自动启动服务这些相关知识,不过我在真机上测试,xml配置的receiver是可以监听到boot完成的广播,然后启动我的服务的,从而达到开机自动启动服务的目的

热点排行