我有侦听套接字的服务。当接收到特定输入它是创造一个活动。当接收到另一输入,它是杀死此活动。我已经挣扎了一段时间,使该服务通过AIDL活动通信( HTTP ://developer.android.com/guide/developing/tools/aidl.html ),但这似乎没有效果。我认为AIDL是当要交谈的过程是一种服务,而不是当它是一个活动的唯一有效的?我很想对如何解决我的问题的一些指导或建议。

干杯,

有帮助吗?

解决方案

  

我有监听到一个服务   插座。当接收某一输入   它是创造一个活动。

请让这个配置。服务不应该首发,除了在活动的非常的异常情况(例如,插座是SIP连接和您要创建一个VOIP客户端)。弹出一个活动中断在任何他们正在做的用户。

  

当接收其他输入,它是   杀此活动。

我见过的唯一的场景,这是一个有效的模式被驳回的通话中画面时,对方挂断线路。如果要创建一个VOIP客户端,你提出的模式应该是好的,但在其他方面,请重新考虑其使用它在用户中间的活性消失。

  

我认为AIDL是唯一有效的时   该过程将被谈话是   一个服务,而不是当它是活动?

没有,它工作在反向方向上也一样,但通常只有当活动是一个启动服务和结合它。更重要的是,AIDL仅用于跨进程通信。

  

我喜欢某些方向或   如何解决我的建议   问题

您还没有真正提供对通信的性质足够的信息给你一个完整的答案。究竟什么是服务试图告诉活动?是活动还尝试与服务进行通信?

从活动到服务用于正在进行的通信的推荐模式是使用本地绑定模式。你会发现这样的一个例子您的SDK样本中,你可以找到一个的此处以及

然后,服务具有用于传送回客户端选择:通过回调(例如,在由Smiljanić先生提供的答案Handler)或经由广播Intents。在回调的情况下,该活动将需要绑定到服务,以获得访问某个API提供的回调对象。然后,服务将不放该对象,并在关键事件调用它的方法。

如果您的服务做在后台线程的主要工作,你需要确保你的UI操作让UI线程上执行。所述Handler是一个方法,它

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top