给定各种过滤参数,我的应用程序正在搜索数据。该数据是从多个来源(即 Internet 上的多个站点)获取的。我希望其他开发人员能够实现他们自己的数据源,这样他们就可以将它们“插入”到我的应用程序中,而无需我进行任何操作。
实现这一目标的最佳方法是什么?尤其:
- 外部开发人员应该怎么做才能使他们的实现对我的流程可见?
- 我如何发现这样的外部实现?
- 一旦发现,我可以使用什么作为这些实现中的每一个的标识符?
- 如何与外部实现的各种“方法”进行通信。
我最好的猜测是使用服务:
- 让外部开发人员使用具有指定 URI的意图过滤器设置他们的服务。
- 使用PackageManager #queryIntentServices 方法列出与指定 URI 匹配的所有服务。
- 使用他们的包名作为标识符,所以我可以直接在那个包上启动意图。
- 相信外部开发人员会倾听并正确响应我的文档中指定的所有意图。我会将 PendingIntent 或 Messenger 对象传递给它们以获取结果。
我还没有尝试过,我是 Android 的初学者。这是正确的方法吗?