多个活动之间的套接字架构

时间:2013-07-21 16:49:44

标签: android sockets

我开始编写一个使用套接字与其他设备通信的应用程序。我目前正在尝试设计应用程序的体系结构。它将有多个活动。我的问题是,如果我有一个在活动之间传递的套接字实例,或者在扩展Application的类中声明,除非我在每个活动中打开和关闭它,我怎么知道何时关闭它? - 虽然这可行,但我不确定它是否是“最干净”的方法。

1 个答案:

答案 0 :(得分:1)

我认为你不会找到另一种做你想做的好方法。我会在应用程序类中创建对象或作为单例创建。也许创建一个BaseActivity类,它将在onCreate中获取引用并在onDestroy上释放它。您将在要使用对象的每个活动中扩展此类。

我还会跟踪Singleton类中定义“socket”的引用,这意味着有一个计数器,每次获取时递增,并在每次释放调用时递减。当计数器变为0时,您可以关闭套接字或更好地发布一个runnable,如果没有新活动再次“获取”该引用,它将在特定时间后关闭它。

我在我的库中做了类似的事情来处理runnable。

在这里查看: BaseObservableThreadPoolService | ThreadCountObserver