package com.qihoinfo;import java.util.HashMap;import java.util.Map;import org.json.JSONArray;import org.json.JSONObject;import com.qihoinfo.util.ClientService;import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.widget.TextView;public class MainActivity extends Activity {String requestByHttpGet = null;String requestByHttpPost = null;String returnResult ="";String url_str = "http://192.168.1.67/androidjson.php";Map<String, String> params = null;TextView textView;// 声明变量private ProgressDialog pd;// 定义Handler对象private Handler handler = new Handler() {@Override// 当有消息发送出来的时候就执行Handler的这个方法public void handleMessage(Message msg) {super.handleMessage(msg);switch (msg.what) {case 0: textView.setText(returnResult);break;default:textView.setText("请求严重超时,请检查你的网络设置是否通畅!");break;}// 只要执行到这里就关闭对话框pd.dismiss();}};public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);Log.i("tag", "onCreate()-->" + Thread.currentThread().getName());textView = (TextView) findViewById(R.id.text);processThread();textView.setText(returnResult);}private void processThread() {// 构建一个下载进度条pd = ProgressDialog.show(MainActivity.this, "加载数据", "网络数据加载中......");Log.i("tag", "processThread()-->" + Thread.currentThread().getName());new Thread() {@Overridepublic void run() {Log.i("tag", "run()-->" + Thread.currentThread().getName());//执行请求数据的方法    longTimeMethod();    if(returnResult.equals("")){// 执行完毕后给handler发送一个超时消息handler.sendEmptyMessage(1);}else{// 执行完毕后给handler发送一个空消息handler.sendEmptyMessage(0);}}}.start();}// 模拟下载文件的长耗时方法private void longTimeMethod() {try {Log.i("tag", "longTimeMethod-->" + Thread.currentThread().getName());Thread.sleep(0);params = new HashMap<String, String>();params.put("name", "张三");try {requestByHttpGet = ClientService.requestByHttpGet(url_str,params, "UTF-8");JSONArray jArray = new JSONArray(requestByHttpGet);if (jArray.length() > 0 && jArray != null) {for (int i = 0; i < jArray.length(); i++) {JSONObject json_data = jArray.getJSONObject(i);// 通过返回的json储存的搜索过得mysql列表值进行获取Log.e("json", json_data.toString());returnResult += "\n您的名称是 :"+ json_data.getString("uName") + "\nid:"+ json_data.getString("id");}}requestByHttpPost = ClientService.requestByHttpPost(url_str,params, "UTF-8");JSONArray jArray2 = new JSONArray(requestByHttpPost);for (int i = 0; i < jArray2.length(); i++) {JSONObject json_data = jArray2.getJSONObject(i);// 通过返回的json储存的搜索过得mysql列表值进行获取Log.e("json", json_data.toString());returnResult += "\n您的名称是 :" + json_data.getString("uName")+ "\nid:" + json_data.getString("id"); }} catch (Exception e) {e.printStackTrace();}} catch (InterruptedException e) {e.printStackTrace();}}}

更多相关文章

  1. Handler 内部类导致的内存泄露修改方法
  2. Android 在程序中重启APP的方法
  3. android studio AppCompatActivity中onCreate的两种方法
  4. Android截图方法
  5. ReactNative常见问题及解决方法
  6. Android Repo 超时的解决方法
  7. android的sqlite主键设置方法。
  8. java中Arraylist复制方法
  9. Android中完全退出APP的方法

随机推荐

  1. Kafka为什么速度快
  2. 别扯了,学Flutter,Android 就不会凉?
  3. 我又一次被 Google Developer Day 给丑拒
  4. 有经验的程序员千万别被技术绑架了!
  5. Android 可视化埋点方案
  6. DOClever,让接口更懂你
  7. Android之DatePicker/TimePicker控件
  8. Android万能框架搭建
  9. Node.js+Koa2+MySQL打造前后端分离精品项
  10. centos crontab设置