Android活动-远程服务aidl双向连接

Android活动-远程服务aidl双向连接,android,Android,我有两个问题: 我知道对于连接活动和远程服务,我必须使用AIDL。 我尝试了这个,它的工作,但我只能找到单向连接的例子。简单地说,从服务中阅读一些东西(通过活动)。但我需要解决将一些数据发送到活动(通过服务或从服务发送)的问题。这一点非常重要,因为服务必须在一些its事件之后立即向活动发送一些信息(从网络获取数据) 这是从远程服务再次将关闭的应用程序(活动)带到前台的方法吗 如有任何建议,将不胜感激 问候 阿蒂克 这一点非常重要,因为服务必须在一些its事件之后立即向活动发送一些信息(从网络获取

我有两个问题:

  • 我知道对于连接活动和远程服务,我必须使用AIDL。 我尝试了这个,它的工作,但我只能找到单向连接的例子。简单地说,从服务中阅读一些东西(通过活动)。但我需要解决将一些数据发送到活动(通过服务或从服务发送)的问题。这一点非常重要,因为服务必须在一些its事件之后立即向活动发送一些信息(从网络获取数据)
  • 这是从远程服务再次将关闭的应用程序(活动)带到前台的方法吗 如有任何建议,将不胜感激

    问候

    阿蒂克

    这一点非常重要,因为服务必须在一些its事件之后立即向活动发送一些信息(从网络获取数据)

    您可以使用AIDL进行双向通信。您不仅需要公开服务接口,还需要通过AIDL公开回调接口,客户端拥有回调的
    .Stub
    ,并在参数中向服务接口上的方法提供回调实例。这有点复杂--下面是一对示例应用程序,演示了该技术:

    这是从远程服务再次将关闭的应用程序(活动)带到前台的方法吗


    您的服务可以调用
    startActivity()
    ,但通常这不是一个好主意。当你的活动突然进入前台时,用户可能正处于做其他事情的中间。有时,用户可能认为您的活动更重要,但并非总是如此。考虑使用<代码>通知< /C>,让用户知道你的应用程序中有什么东西需要用户的注意。

    首先,在你的服务中创建一个私有的结果接收变量。然后创建一个方法,通过连接的活动设置此resultreceiver。然后使用AIDL通过刚才创建的方法将resultreceiver从活动传递到正在运行的服务。然后,如果resultreceiver不为null,则在服务中使用resultreceiver.send

    让您开始学习的几个示例


    –Intents-Part-3——服务意图更新链接:回调的实际示例如下