【问题标题】:How to communicate between two applications in Android?如何在 Android 中的两个应用程序之间进行通信?
【发布时间】:2014-10-22 06:05:43
【问题描述】:

我正在开发一个键盘,所以我正在实现一个InputMethodService。我需要向此键盘应用程序添加其他功能,但将其作为另一个应用程序分离,以便将键盘作为单独的键盘实现。

所以我需要创建一个键盘应用程序和另一个具有所有其他功能的应用程序(其他功能包括但不限于:新闻活动、信使、锁屏实现和一些小部件)。

这两个应用程序需要在它们之间进行通信,根据我的研究,我发现有几种机制可以使用:

  1. 有界服务
  2. URI 实现
  3. 广播接收器

我的问题是:什么是满足我需求的最佳实施方式?我的需求是将数据从一个应用程序传递到另一个应用程序,以及从另一个应用程序的一个应用程序启动 Activity 和其他组件。

【问题讨论】:

  • 已经阅读了这篇文章,但谢谢@deniz :)
  • 选项 #1 是最灵活/最简单的方法
  • 和 AIDL 的第一名让它变得如此简单

标签: uri communication android android-service-binding


【解决方案1】:

在我对这个话题做了一些研究之后,我发现有几种方法可以做这个操作:

  1. 使用有界服务,它使用Messenger 对象在本地进程和远程有界服务之间传递消息,或者使用AIDL 创建一个接口,该接口将从远程有界服务传递到本地处理,以便他们可以交流。

  2. 第二种选择是使用老式的BroadcastReceivers。这样一来,就可以将 Intent 从本地进程触发到远程进程并在那里接收一些信息。

这两者的使用不同取决于您希望两个进程之间的连接有多强以及它们应该多久进行一次通信。如果他们需要偶尔进行一次操作,BroadcastReceivers 将是一个非常好的解决方案。但是,如果您需要更一致的连接,有界服务是您的最佳选择。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-03
    • 2020-05-23
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 2011-06-06
    • 2011-04-13
    相关资源
    最近更新 更多