AsyncTask 异步处理

 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     @Override
25     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             @Override
39             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         @Override
55         protected String doInBackground(String... params) {//params的类型和AsyncTask类的第一个泛型对应
56             // TODO Auto-generated method stub
57             String uname = params[0];//得到用户名
58             String upass = params[1];//得到密码
59             String url = params[2];//得到url
60             String rs = NetWorkUtil.loginCheck_Get_HttpClient(uname, upass, url);//请求服务器。得到结果
61             
62             return rs;//把请求的结果传递到onPostExecute方法中
63         }
64         //相当于Handler 处理UI的方式,在这里面可以使用在doInBackground 得到的结果处理操作UI
65         @Override
66         protected void onPostExecute(String result) {//result的类型和AsyncTask类的第三个泛型对应
67             // TODO Auto-generated method stub
68             login.setText(result);
69             //判断登陆的结果,决定是否跳转
70             
71 //            super.onPostExecute(result);
72         }
73         
74     }
75 
76 
77 }

你可能感兴趣的:(AsyncTask 异步处理)