我正在写一个与网站进行通信的Android应用程序。任何时候我点击网站,我都会显示一个ProcessDialog,以便用户知道发生了什么。我的大部分网站沟通都是单向的,所以我通常不会期望任何回报数据。子线程的返回值
但是,有一点我需要获取信息,但是当我退出子线程时,结果不会被存储。简而言之,我需要调用一个线程,让它处理结果,并将结果存储在几个字段中。
这里就是我这么远 - 我有两个变量,String[] Account
和boolean AccountRetrievalSuccess
:
public void GetAccount() {
MyDialog = ProgressDialog.show(MyContext, "Retrieving Account" , "We're retrieving your account information. Please wait...", true);
Thread T = new GetAccountThread();
T.start();
}
public class GetAccountThread extends Thread {
@Override
public void run() {
try {
String resp = GetPage(BaseURL+MainPage+"?P="+PhoneID+"&K="+WebAccessKey+"&A=ACCOUNT");
if (resp.contains("FAILURE|")){
failhandler.sendEmptyMessage(0);
} else {
resp = resp.replace("SUCCESS|", "");
Account = resp.split("\\|");
handler.sendEmptyMessage(0);
}
} catch (Exception e) {
failhandler.sendEmptyMessage(0);
}
};
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
AccountRetrievalSuccess = true;
MyDialog.dismiss();
}
};
private Handler failhandler = new Handler() {
@Override
public void handleMessage(Message msg) {
AccountRetrievalSuccess = false;
MyDialog.dismiss();
ShowWtf();
}
};
}
任何想法,我需要做的,能够存储账户和AccountRetrievalSuccess值,使我可以从代码中的其他地方访问它们?