2011-02-12 79 views
9

我想问一些例子,其中两个不同的活动(第一个活动中的按钮打开第二个活动),正在与一个服务(AIDL等)通信 我试过很多不同的教程,但它们只是关于如何进行一项活动 - >一项服务。如何将两个Android活动绑定到一个服务?

回答

11

这可能是老了,但我会尽力回答反正它...

在Android中,看到只有一个Activity可以同时绑定到Service,只有一个Activity可以显示在一次,没有真正的理由想要一次绑定2个活动。

但是,如果您愿意,最好的解决方案是在onResume()方法中绑定Service,并在onPause()方法中解除绑定。这允许您给两个不相关的活动访问该服务,同时只有一个绑定。

1

每个Activity负责从Service绑定和解除绑定。这通常在onResume/或onStart/onStop中完成,具体取决于您的要求。一个Activity不能将另一个Activity绑定到Service。就是那样子。 :)

+1

这不是我想说的事情。 – lauriys 2011-02-13 20:11:10

+2

我不希望一个活动将另一个活动绑定到服务。 我只想知道,如何将两个活动绑定到一个服务。 第一个活动启动服务,第二个将自己绑定到它。 – lauriys 2011-02-13 20:12:03

0

您可以通过使用提供IPC通信的Messenger而不使用AIDL来实现。这是您可以将多个活动绑定到服务的方式。

如果您需要自己的服务与远程进程进行通信,那么您可以使用Messenger为您的服务提供接口。 该技术允许您在不需要使用AIDL的情况下执行进程间通信(IPC) 。

看看this link。当你看到代码时,你会发现一个包含Handler的开关盒,这将满足你将从多个活动/组件发送的多个请求。谢谢。我希望这个答案对你有所帮助。

相关问题