私のアプリのデザインに問題があります。特に、メインアクティビティとは異なる、クラスのアセットを開いています。コンテキストとアクティビティの参照
私のプロジェクトのこの部分はWebサーバーであり、WebServerとWebPageという2つのクラスがあります。 WebServerには、次のメソッドがあります。 start(), get(), post(), send(WebPage)
といくつかのコンストラクタ。
Webページには、String head
(HTTPヘッダー)とbyte [] body
(テキストまたは任意のファイルにできるコンテンツ)の2つの変数があります。 WebPageには、1つのメソッドbyte[] getFile(String filename)
があり、コンストラクタがbodyのファイルのバイトを保存するために使用します。ファイルはアセットです。
アクティビティが開始すると(onCreate()
)、WebServerのインスタンスが作成され、start()が呼び出され、リスニングにとどまります。サーバーがGET要求を受け取ると、サーバーはそれを解析し、ファイル名を使用してアセットを開くWebPageオブジェクトを作成します。最後に、WebServerはsend(WebPage)でページを送信します。
WebPageクラスからアクティビティのリファレンスを取得する最も良い方法は何ですか?
OK!したがって、逆の操作を行う方法はありません(例えば、WebPageクラスの中からアクティビティの参照を直接取得する命令)。この目的には 'getApplicationContext()'が適していますか? – supergiox
それは逆ではありません!コンストラクタに渡す理由を説明してください。 –
私はWebServerとWebPageのためのより小さく、より汎用性の高いコンストラクタを持っています: 'WebServer(int port)'と 'WebPage(String filename)'。また、私はアンドロイドとPCの両方に使用される "一般的な" WebServerクラスを(可能な限り)持っています。しかし、それが最良の解決策なら、Contextパラメータの有無にかかわらず、いくつかのコンストラクタを作成すると思います。 – supergiox