繁体   English   中英

Android Binder IPC addService:是否可以再次删除服务?

[英]Android Binder IPC addService: is there a way to remove service again?

我在代码中的某个地方,我的权限非常有限,但必须将数据发送到android应用程序之外。 (Android系统C代码)显然,我无法在其中启动活页夹服务,但可以连接到已经运行的服务。 因此,我的实现每秒检查一次服务是否可用,如果可用,它将连接并开始发送数据。 这很好。

我的问题如下。 如果我终止了服务二进制文件/进程,客户端将以某种方式看不到该服务不再可用。 有没有办法删除我使用addService(...)添加的服务? 客户端执行getService()

我可以通过定期在客户端再次执行getService()来解决问题。 这样,如果服务消失了,他们将不会立即看到它,但是他们会在某个时候得到它。 这样,如果服务再次可用,他们可以重新连接。

我没有找到任何东西可以“删除”该服务。 但是这种解决方法很好用。

没有API可以删除服务句柄,尽管当服务svcinfo_death()时,服务管理器将使用svcinfo_death()释放句柄。 本机服务管理器中唯一有效的传入交易代码是SVC_MGR_GET_SERVICESVC_MGR_CHECK_SERVICESVC_MGR_ADD_SERVICESVC_MGR_LIST_SERVICES (请参阅service_manager.c )。

就是说,您可能会发现,将这种解决方案应用于您的问题可能会更高效,更可靠,从而确定是否有必要再次调用getService()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM