非同期タスクについて基本的な質問があります。私は Android プログラミングの初心者です。この質問で申し訳ありません。
doinbackground でソケットを開きます。
doInBackground(... ) {
Socket socket = null;
DataOutputStream dataOutputStream = null;
DataInputStream dataInputStream = null;
try {
socket = new Socket(192.168.0.1, 2000);
dataOutputStream = new DataOutputStream(socket.getOutputStream());
dataInputStream = new DataInputStream(socket.getInputStream());
}}
AsyncTask が終了すると、ソケットはどうなりますか? (doInBackground と OnPostExecute が通過するとすぐに。)
ソケットはまだ利用できますか? それとも、ガベージ コレクターによって削除されますか?
次の質問ですが、実は同じ背景です。
AsyncTask が終了した後、doInBackground でインスタンス化したクラスのインスタンスはどうなりますか? (doInBackground と OnPostExecute が通過するとすぐに。)
doInBackground(... ) {
IPConnection ipcon = new IPConnection();
}
-------------------------------------------------- -------------------
編集:
Asynctask のオブジェクトから MainActivity への参照を作成するにはどうすればよいですか?
編集2:
それはメインスレッドへの参照ですか?そのコード例では、オブジェクトはガベージ コレクターによって削除されませんか?
public class ClientActivity extends Activity {
private IPConnection ipcon;
private Socket Testsocket;
public class IPConnection extends AsyncTask<String, String, IPConnection> {
@Override
protected IPConnection doInBackground(String... message) {
ipcon = new IPConnection();
ipcon.run();
return null;
}
}
}
前もって感謝します。