0

複数のアクティビティを備えたAndroidアプリがあります。必要なクラスの1つに、ソケット接続サーバーが含まれています。

このサーバークラスをメインアクティビティのネストされたサブクラスとして作成するか、サービスを拡張してサービスクラスとしてバックグラウンドで実行することを決定しています。

このサービスはユーザーのバッテリーを本当に消耗させる可能性があるとコメントする人もいますが、サービスクラスを終了するのは難しいことがわかりました。ユーザーがボタンをクリックするだけでサービスとアプリを停止できるように、トップメニューで通知を使用することがあります。しかし、ユーザーがこれを行うと、アプリがクラッシュしたように見え、コーシャに見えないというエラーメッセージが表示されます。

ソケットサーバークラスをxmlレイアウトファイルを含まない空白のアクティビティに配置すると、メインアクティビティからフォーカスが失われる空白のページが表示され、この問題を回避する方法がない限り、見栄えが悪くなります。 。

別のアイデアの1つは、ソケットサーバーを他のクラスを拡張しないユーティリティクラス内に配置し、ネストされたブロードキャストレシーバーまたはインテントを使用してメッセージをメインアクティビティに送り返すことです。

別の代替案は、アプリケーションを拡張するクラス内にソケットサーバーを配置することです。

このソケットサーバークラスを実装する正しい方法は何ですか?

4

1 に答える 1

0

専用サービスのスレッドで実行される(Bluetooth)サーバーソケットがあり、ユーザーからの問題は報告されていません。

一部の人々は、サービスが本当にユーザーのバッテリーを焼き尽くすことができるとコメントしています

私の意見では、あなたは「それを吸って見る」べきです。つまり、あなたがそれを試してテストしない限り、あなたは決してわかりません。はい、別の方法があります。はい、追加のバッテリーはゼロ以上必要ですが、テストして測定してください。

于 2013-02-04T02:48:30.877 に答える