AsyncTask 异步处理
来源:互联网 发布:淘宝达人简历怎么写 编辑:程序博客网 时间:2024/06/09 22:41
1 package com.ch.day8_asynctaskdemo; 2 3 import java.util.ArrayList; 4 5 import com.ch.myutils.NetWorkUtil; 6 7 import android.os.AsyncTask; 8 import android.os.Bundle; 9 import android.app.Activity;10 import android.content.Context;11 import android.util.Log;12 import android.view.Menu;13 import android.view.View;14 import android.view.View.OnClickListener;15 import android.widget.Button;16 import android.widget.EditText;17 18 public class MainActivity extends Activity {19 private EditText name;20 private EditText pass;21 private Button login;22 Context mcontext;23 24 @Override25 protected void onCreate(Bundle savedInstanceState) {26 super.onCreate(savedInstanceState);27 setContentView(R.layout.activity_main);28 mcontext = this;29 init();30 }31 32 public void init(){33 name = (EditText) findViewById(R.id.username);34 pass = (EditText) findViewById(R.id.userpass);35 login = (Button) findViewById(R.id.login);36 37 login.setOnClickListener(new OnClickListener() {38 @Override39 public void onClick(View v) {40 String nameV = name.getText().toString();41 String passV = pass.getText().toString();42 43 //判断网路是否畅通加权限44 if(NetWorkUtil.isNetAvailable(mcontext)){//网络畅通45 //通过AsyncTask访问服务器46 47 new MyAsyncTask().execute(nameV,passV,NetWorkUtil.LOGIN_URL);//调用MyAsyncTask执行请求48 }49 }50 });51 }52 class MyAsyncTask extends AsyncTask<String, Integer, String>{53 // 后台执行,比较耗时的操作都可以放在这里54 @Override55 protected String doInBackground(String... params) {//params的类型和AsyncTask类的第一个泛型对应56 // TODO Auto-generated method stub57 String uname = params[0];//得到用户名58 String upass = params[1];//得到密码59 String url = params[2];//得到url60 String rs = NetWorkUtil.loginCheck_Get_HttpClient(uname, upass, url);//请求服务器。得到结果61 62 return rs;//把请求的结果传递到onPostExecute方法中63 }64 //相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI65 @Override66 protected void onPostExecute(String result) {//result的类型和AsyncTask类的第三个泛型对应67 // TODO Auto-generated method stub68 login.setText(result);69 //判断登陆的结果,决定是否跳转70 71 // super.onPostExecute(result);72 }73 74 }75 76 77 }
package com.ch.myutils;import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.BasicHttpParams;import org.apache.http.params.HttpConnectionParams;import org.apache.http.params.HttpParams;import org.apache.http.util.EntityUtils;import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;public class NetWorkUtil { public static final String LOGIN_URL = "http://169.254.109.73:8080/serverof1407a/loginServlet"; public static boolean isNetAvailable(Context context){ //获得网络管理器 ConnectivityManager connM = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = connM.getActiveNetworkInfo();//得到网络详情 if(netInfo == null || !netInfo.isAvailable()) return false; return true; } public static String loginCheck_Get_HttpClient(String name,String pass,String url){ //通过StringBuffer来加工url StringBuffer sb = new StringBuffer(url); sb.append("?username="); sb.append(name); sb.append("&userpass="); sb.append(pass); String result = ""; HttpGet get = new HttpGet(sb.toString());//创建httpClient的get请求对象 //设置请求参数 HttpParams params = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(params, 5*1000); HttpConnectionParams.setSoTimeout(params, 5*1000); HttpClient client = new DefaultHttpClient(params);//创建HttpClient对象 try { HttpResponse res = client.execute(get);//执行请求,获得结果 if(res.getStatusLine().getStatusCode() == 200){ HttpEntity entity = res.getEntity();//获得相应结果,是一个HttpEntity对象 result = EntityUtils.toString(entity, "utf-8");//转换为字符串 } } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return result; } }
0 0
- Android AsyncTask异步处理
- AsyncTask 异步处理
- 实现异步处理----AsyncTask
- 异步处理AsyncTask
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- Android 异步处理AsyncTask
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- Android AsyncTask异步处理
- 异步任务处理---AsyncTask
- 异步任务处理---AsyncTask
- AsyncTask 异步处理
- AsyncTask异步处理机制
- HttpClient——Get,Post
- HttpURLConnection——get,post
- linux系统调用原理
- 数据库SQLiteOpenHelper自创
- 根据网址获取图片
- AsyncTask 异步处理
- XMLPuLL解析
- Dbutils数据库增删改查
- HttpEntity转换Inputstream(红色)加XmlPull解析
- html与Android——webView
- UniversalImageLoader源码解读06-任务调度
- 利用JS做到隐藏div和显示div
- ImageLoader加载图片
- @Class