複数のアクティビティを備えたAndroidアプリがあります。必要なクラスの1つに、ソケット接続サーバーが含まれています。
このサーバークラスをメインアクティビティのネストされたサブクラスとして作成するか、サービスを拡張してサービスクラスとしてバックグラウンドで実行することを決定しています。
このサービスはユーザーのバッテリーを本当に消耗させる可能性があるとコメントする人もいますが、サービスクラスを終了するのは難しいことがわかりました。ユーザーがボタンをクリックするだけでサービスとアプリを停止できるように、トップメニューで通知を使用することがあります。しかし、ユーザーがこれを行うと、アプリがクラッシュしたように見え、コーシャに見えないというエラーメッセージが表示されます。
ソケットサーバークラスをxmlレイアウトファイルを含まない空白のアクティビティに配置すると、メインアクティビティからフォーカスが失われる空白のページが表示され、この問題を回避する方法がない限り、見栄えが悪くなります。 。
別のアイデアの1つは、ソケットサーバーを他のクラスを拡張しないユーティリティクラス内に配置し、ネストされたブロードキャストレシーバーまたはインテントを使用してメッセージをメインアクティビティに送り返すことです。
別の代替案は、アプリケーションを拡張するクラス内にソケットサーバーを配置することです。
このソケットサーバークラスを実装する正しい方法は何ですか?