-3
当我的设备网络连接,执行AsyncTask。 此AsyncTask获取公共IP。如何从android上的另一个类获取asynctask结果值?
的AsyncTask在MainActivity(内)
我想要的AsyncTask结果(结果值是公网IP)从另一个类值。
如何从另一个班级获得公共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;
}
}
通常称之为的AsyncTask另一个类
MainActivity.getAsyncPubIp asyncPub = new MainActivity.getAsyncPubIp(); asyncPub.execute();
但我想从另一个类
唯一的AsyncTask结果值如何得到?
的可能的复制[如何获得OnPostExecute的结果( )到主要活动,因为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