Android 导出服务与ADIL服务
除了将服务标记为导出以供远程进程使用外,我找不到关于何时创建ADIL接口的直接答案Android 导出服务与ADIL服务,android,service,Android,Service,除了将服务标记为导出以供远程进程使用外,我找不到关于何时创建ADIL接口的直接答案 到目前为止,我发现ADIL允许并发执行多个事件?当您希望允许其他应用程序或进程绑定到导出的服务(例如,bindService())时,可以使用AIDL 相反,如果您只希望其他应用程序或流程通过startService()启动您的服务,那么您不需要AIDL。我明白了,因此标记为exported的服务可以启动,但不能通过binder对象跨流程边界操作?@justanother:正确bindService()可以在没有
到目前为止,我发现ADIL允许并发执行多个事件?当您希望允许其他应用程序或进程绑定到导出的服务(例如,
bindService()
)时,可以使用AIDL
相反,如果您只希望其他应用程序或流程通过
startService()
启动您的服务,那么您不需要AIDL。我明白了,因此标记为exported的服务可以启动,但不能通过binder对象跨流程边界操作?@justanother:正确bindService()
可以在没有AIDL的情况下工作,但只能用于您自己流程中的服务。对于跨流程工作,您需要AIDL和AIDL生成的代码。原则上,通过检查AIDL生成的代码并尝试自己复制,您可以让bindService()
跨流程工作,但我不知道这有多实际可以在没有AIDL的情况下工作,但仅适用于您自己流程中的服务。对于跨流程工作,您需要AIDL和AIDL生成的代码“实际上,您仍然可以使用android.os.Messenger
或任何其他使用Binder
协议的类(transact()
onTransact()方法)但我同意艾德尔的观点simpler@pskink:对于Messenger
,您甚至不需要bindService()
。使用startService()
@commonware是的,但它适用于任何活页夹
:您不必使用“绑定服务”并从服务#onBind
返回活页夹
-您可以通过startService
中使用的意图
传递它