package com.ch.day8_asynctaskdemo;
import java.util.ArrayList;
import com.ch.myutils.NetWorkUtil;
import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.content.Context; import android.util.Log; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText;
public class MainActivity extends Activity { private EditText name; private EditText pass; private Button login; Context mcontext;
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mcontext = this; init(); }
public void init(){ name = (EditText) findViewById(R.id.username); pass = (EditText) findViewById(R.id.userpass); login = (Button) findViewById(R.id.login);
login.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { String nameV = name.getText().toString(); String passV = pass.getText().toString();
//判断网路是否畅通加权限 if(NetWorkUtil.isNetAvailable(mcontext)){//网络畅通 //通过AsyncTask访问服务器
new MyAsyncTask().execute(nameV,passV,NetWorkUtil.LOGIN_URL);//调用MyAsyncTask执行请求 } } }); } class MyAsyncTask extends AsyncTask<String, Integer, String>{ // 后台执行,比较耗时的操作都可以放在这里 @Override protected String doInBackground(String... params) {//params的类型和AsyncTask类的第一个泛型对应 // TODO Auto-generated method stub String uname = params[0];//得到用户名 String upass = params[1];//得到密码 String url = params[2];//得到url String rs = NetWorkUtil.loginCheck_Get_HttpClient(uname, upass, url);//请求服务器。得到结果
return rs;//把请求的结果传递到onPostExecute方法中 } //相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI @Override protected void onPostExecute(String result) {//result的类型和AsyncTask类的第三个泛型对应 // TODO Auto-generated method stub login.setText(result); //判断登陆的结果,决定是否跳转
// super.onPostExecute(result); }
}
}
|