【发布时间】:2013-01-13 14:50:57
【问题描述】:
(我有一个带有 AIDL 接口的 remote 服务,该接口被多个客户端应用程序使用。我想在接口中添加一个异步方法来处理需要一些时间的调用,但我需要解决方案是安全,这意味着只有我的应用程序可以与服务通信。客户端应用程序使用与服务应用程序相同的签名进行签名。目前应用程序只是绑定到服务并调用单个接口方法来执行各种操作。
一个选项是在操作完成时从服务中广播 Intent 并在客户端应用程序中使用 BroadcastReceiver,但是(问题 #1)可以通过确保只有我的应用程序可以接收 Intent 吗? setPackage() 似乎可以做到这一点,但我需要支持 Gingerbread 设备,根据这里的答案,这似乎排除了这种方法:setPackage for intent in gingerbread
所以看来我需要添加第二个 .aidl 接口和回调接口供服务使用,由客户端实现。我在这里看到了使用侦听器的示例,但我不确定与仅将第二个接口对象作为参数传递的客户端有什么区别(如该答案的 IScript / IScriptResult 示例中使用的那样:Service call backs to activity in android)
问题 #2,在这里使用监听器与回调方法相比有什么好处?
【问题讨论】:
-
监听器是回调方法。
标签: android android-intent service callback aidl