我无法弄清楚如何从GetLogin类中检索一个我扩展了AsyncTask的值。这是我的代码:
public class GetLogin extends AsyncTask<String, Void, String> {
private final HttpClient httpclient = new DefaultHttpClient();
final HttpParams params = httpclient.getParams();
HttpResponse response;
private String content = null;
private Context mContext;
public GetLogin(Context context){
this.mContext = context;
}
protected String doInBackground(String... urls) {
String result = null;
try {
DefaultHttpClient httpClient=new DefaultHttpClient();
Log.e("Tag", "url: " + urls[0]);
//Connect to the server
HttpGet httpGet = new HttpGet(urls[0].toString());
//Get the response
HttpResponse httpResponse = httpClient.execute(httpGet);
HttpEntity httpEntity = httpResponse.getEntity();
InputStream stream = httpEntity.getContent();
//Convert the stream to readable format
result = convertStreamToString(stream);
Log.e("Tag", "Result: " + result);
if (result.charAt(1)=='1') {
return "Login Successful";
} if (result.charAt(1)=='0') {
return "Login Failed";
} else {
return result.toString();
}
// } catch (ClientProtocolException e) {
// Log.w("HTTP2:",e );
// content = e.getMessage();
// cancel(true);
// return "Could not connect to Server";
//
// } catch (IOException e) {
// Log.w("HTTP3:",e );
// content = e.getMessage();
// cancel(true);
// return "Could not connect to Server";
}catch (Exception e) {
Log.w("HTTP4:",e );
content = e.getMessage();
cancel(true);
return "Could not connect to Server";
}
}
public static String convertStreamToString(InputStream is)
{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = null;
try {
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return sb.toString();
}
}
以下是登录活动的代码
String url = "http://192.168.1.107:6972/evalservice/checkLogin?name="+tvUsername.getText()+"&pass="+tvPassword.getText();
new GetLogin(LoginActivity.this).execute(url);
我想做的是设置if语句以查看登录是否成功,如果是,请继续下一个活动
答案 0 :(得分:2)
我想做的是设置if语句以查看登录是否成功,如果是,请继续下一个活动
从doInBackground(...)
返回的任何内容都会传递给onPostExecute(...)
的{{1}}方法。只需检查该方法中的结果,如果成功,则让它开始下一个AsyncTask
和Activity
当前的结果。