ソケットを使用して別のデバイスと通信するアプリケーションを書き始めています。現在、アプリケーションのアーキテクチャを設計しようとしています。複数のアクティビティが含まれます。私の質問は、アクティビティ間で渡される単一のソケット インスタンスがある場合、または Application を拡張するクラスで宣言されている場合、各アクティビティで開いて閉じない限り、それをいつ閉じるかをどのように知ることができますか? - これは機能しますが、それが「最もクリーンな」方法であるかどうかはわかりません。
質問する
301 次
1 に答える
1
あなたが望むことを行うための別の良い方法を見つけるとは思いません。アプリケーション クラス内またはシングルトンとしてオブジェクトを作成します。また、onCreate で参照を取得し、onDestroy で解放する BaseActivity クラスを作成することもできます。オブジェクトを使用するすべてのアクティビティで拡張するこのクラス。
また、「ソケット」を定義する Singleton クラス内の参照も追跡します。つまり、get ごとにインクリメントされ、リリース呼び出しごとにデクリメントされるカウンターがあります。カウンターが 0 になったら、ソケットを閉じるか、新しいアクティビティが参照を再び「取得」しない場合に特定の時間後にソケットを閉じる実行可能ファイルを投稿することをお勧めします。
ランナブルを処理するために、ライブラリで同様のことを行いました。
ここで確認してください: BaseObservableThreadPoolService | ThreadCountObserver
于 2013-07-21T17:21:14.297 に答える