0

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

4

1 回答 1

1

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

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

我在我的库中做了类似的事情来处理可运行的。

在这里查看: BaseObservableThreadPoolService | ThreadCountObserver

于 2013-07-21T17:21:14.297 回答