不同的服务如何共享一个网络连接?

时间:2014-04-19 15:19:39

标签: android service tcp push-notification ipc

我正在开发类似Push Notification SDK的东西,当用户将SDK集成到他们的应用程序时,SDK创建服务并通过TCP连接接收通知。

现在问题是:假设许多应用程序将在某些Android设备上使用SDK,所有应用程序都需要接收自己的通知,如果我们在每个服务中创建TCP连接,则会花费太多资源和电池电量,所以我想使用一个主服务(可能是SDK的第一个服务启动)来建立TCP连接,其他服务通过某种IPC重用连接。但我不知道最适合使用哪种技术。

是否有人可以提供一些建议?

感谢〜

1 个答案:

答案 0 :(得分:0)

最后我用这种方式解决了问题:

建立公共服务(android:export =" true")设置与服务器的TCP连接,当APP启动时,首先检查公共服务是否存在,如果不存在,则调用startService() 。然后在APP中调用bindService()。要与公共服务进行通信,请使用Messenger类:

http://developer.android.com/guide/components/bound-services.html#Messenger