本文实例讲述了Android4.1中BinderService用法。分享给大家供大家参考,具体如下:
Android4.1 中出现了一个新的类,BinderService,所有的Native Service 都会继承这个类。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
class BinderService
{
public :
static status_t publish(bool allowIsolated = false ) {
sp<IServiceManager> sm(defaultServiceManager());
return sm->addService(String16(SERVICE::getServiceName()), new SERVICE(), allowIsolated);
}
static void publishAndJoinThreadPool(bool allowIsolated = false ) {
sp<IServiceManager> sm(defaultServiceManager());
sm->addService(String16(SERVICE::getServiceName()), new SERVICE(), allowIsolated);
ProcessState::self()->startThreadPool();
IPCThreadState::self()->joinThreadPool();
}
static void instantiate() { publish(); }
static status_t shutdown() {
return NO_ERROR;
}
};
|
从代码中可以得知,这个类的publish(),就是将Native Service 注册到ServiceManager,同时 BinderService 作为 NativeService 的友元类。这是因为BinderService 需要访问 Native Service 的getServiceName方法。
希望本文所述对大家Android程序设计有所帮助。