在android中启动sensor的代码是:SensorService::instantiate();
在instantiate()中的代码如下:
sp<IServiceManager> sm(defaultServiceManager());
return sm->addService(String16(SERVICE::getServiceName()), new SensorService());
addService()函数的定义是:status_t addService( const String16& name,const sp<IBinder>& service)= 0;
请问:new SensorService()返回的指针问什么能传递给sp<IBinder>& service?
另外,在调用addService的时候是怎么调用到SensorService::onFirstRef()这个函数的?
谢谢!
------解决方案--------------------
IBinder
|
ISensorServer BBinder
\ /
BnSensorServer
|
SensorService
new SensorService()返回的指针问什么能传递给sp<IBinder>& service ?
因为它是从IBinder继承下来的,见上图继承大概关系
怎么调用到SensorService::onFirstRef()这个函数的?
因为你给sp<IBinder>& 赋值时,sp是个模块,它里面可以实现onFirstRef()
调用
------解决方案--------------------
继承关系图错位了
sp是一个模板类,它里面实现了onFirstRef()
具体过程看一下sp的模板实现过程即可,很容易的
------解决方案--------------------
------解决方案--------------------
谁知道联想A60开关机画面怎么做?