-3
デバイスのネットワーク接続時にAsyncTaskを実行します。 このAsyncTaskはパブリックIPを取得します。アンドロイドの別のクラスからasynctask結果の値を取得するには?
MainActivityでasyncTask(インナー)
私は別のクラスの値(結果値がパブリックIPです)asyncTask結果が欲しいです。
別のクラスからパブリックIPを取得するにはどうすればよいですか?
public class MainActivity extends Activity {
static getAsyncPubIp async = new getAsyncPubIp();
public static final class getAsyncPubIp extends AsyncTask<Void, Void, String> {
String result;
TextView pubView;
@Override
public void onPreExecute() {
super.onPreExecute();
}
@Override
protected String doInBackground(Void... params) {
try {
URL pub = new URL("get public ip domain");
BufferedReader in = new BufferedReader(new InputStreamReader(
pub.openStream()));
String strPub = in.readLine();
result = strPub;
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
pubView = (TextView) activity.findViewById(R.id.ip);
pubView.setText(result);
async = null;
pubView = null;
}
}
通常私のソース、別のクラス
MainActivity.getAsyncPubIp asyncPub = new MainActivity.getAsyncPubIp(); asyncPub.execute();
にこのasynctaskを呼び出すが、私はどのようにこれを取得するために別のクラス
からのみasyncTask結果値をしたいですか?
可能な複製を( AsyncTaskは別のクラスなのでメインアクティビティに移動しますか?](https://stackoverflow.com/questions/12575068/how-to-get-the-result-of-onpostexecute-to-main-activity-because-asynctask-is -a) –
他のクラスのオブジェクトにアクセスするには、Asシングルトンを使ったyncタスク。 – Vasant
インターフェイスを使用して、別のクラスのインターフェイスを定義し、MainActivity – Yatish