「pinNumberConverted」というメイン アクティビティにグローバル変数があります。実行可能なタイプの別のクラスでこの変数の値を取得する必要があります(内部にはサーバーソケットがあります)。どうすればできますか?主な活動は次のとおりです。
public class AndroidServer2 extends Activity {
Random pin_generator = new Random();
public int pin_number = pin_generator.nextInt(9000-1000 +1) +1000; //generate a random code for the first connection with the kiosk
public String pinNumberConverted = String.valueOf(pin_number);
Thread fst = new Thread(new MyServer()); //declaration of a new thread
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_android_server2);
initialize();
}
@Override
protected void onResume(){
super.onResume();
Utilities utilities = new Utilities();
utilities.connectionInfo(this, wiFi, wifiInfo, ipAddress, wirelessName, pin, ipAddressConversion, serverIp, pin_number);
if (fst.isAlive() == false){
fst.start();
}
}
}
これは実行可能なクラスです:
public class MyServer implements Runnable{
//Need to pass the information taken from connection info method in Utilities.java
public Handler handler = new Handler();
public ServerSocket serverSocket;
MyServerMethods myServerMethods = new MyServerMethods();
AndroidServer2 androidServer2 = new AndroidServer2(); //this doesn't work and give error in runtime
@Override
public void run() {
try{
ServerSocket parent = new ServerSocket(); //create a new socket
parent.setReuseAddress(true);
parent.bind(new InetSocketAddress(serverPort)); //bind the server port and reuse it if necessary
if ( serverIp != null){
Log.i("Status","READY");
while (true){
Socket client = parent.accept(); //accept the incoming connection
//Here i need to take the value of the global variable from the main activity
} catch (Exception e) {
e.printStackTrace();
}
}
}
ありがとう