0

すべてのdoInBackgroundメソッドがこれを行う AsyncTasks がいくつかあります。

Socket s = new Socket("12.345.67.89", 5555);    

すべてがアクセスできる 1 つのグローバル変数を設定したいので、場所/IP を変更するときに、すべてのクラス ファイルを調べて各 IP アドレスを変更する必要がありません。

頭のてっぺんから、GlobalInfo共有する必要がある可能性のあるすべての(静的?)変数を含むというクラスを作成し、各doInBackground呼び出しで次のようにすることを考えました。

GlobalInfo derp = new GlobalInfo();
GlobalInfo.getIp();

しかし、アプローチのたびに新しいクラスをインスタンス化するよりも、これを行うためのより良い方法はありますか?

4

5 に答える 5

0

静的クラスを作る

public class GlobalInfo {
    public static final String IP_ADDRESS = "123.123.123.123";

}

そしてそれにアクセスする

 Socket s = new Socket(GlobalInfo.IP_ADDRESS, 5555); 

また

import static GlobalInfo.*;

Socket s = new Socket(IP_ADDRESS, 5555);

その静的な作成は 1 回しか発生しないためです。

于 2013-02-13T11:19:53.317 に答える
0

毎回新しいオブジェクトを作成する必要がないように、定数クラスを作成し、そのクラスのメンバーを静的にすることができます。

何かのようなもの:

public class C {
    public static final String IP = "12.345.67.89";
    public static final int PORT = 5555;
}

次に、次を使用してアクセスします。

Socket s = new Socket(C.IP, C.PORT);    
于 2013-02-13T11:20:05.770 に答える
0

他のすべての答えは正しいですが、個人的にはコンテンツを含む XML ファイルを作成することを選択します

<string name="server_ip">192.168.1.100</string>

そして、単に行う

getString(R.string.server_ip)

このようにして、構成設定をコードから分離したままにします。

于 2013-02-25T22:06:15.397 に答える