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() { @Override public 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(); } }}
详细解决方案
android Thread 数据加载 ProgressDialog 请求超时处置 线程 Handler
热度:485 发布时间:2016-05-01 14:19:41.0
相关解决方案
- Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml解决办法
- thread(线程)中用spring注入不成功有关问题
- Exception in thread "main" java.lang.UnsupportedClassVersionError:有关问题
- android 读取byte[]中的元素解决方案
- android 标题栏兑现方式
- android 中Activity向BroadcastReceiver发送数据,该怎么解决
- Android 4.0 为什么模拟器老是提示小弟我谷歌拼音输入法已停止
- android:getSharedPreferences() 这是哪个类的方法解决思路
- android 怎么判断一个程序是否联网
- Thread.sleep() 有关问题
- android 大量数据按周分组,该如何解决
- android RadioButton如何设置默认选中
- Exception in thread "main" java.lang.NullPointerException,该怎么处理
- 小弟我的程序中Exception in thread "main" java.lang.NullPointerException如何解决
- ksoap2-android-这个包,连接webService怎么设置超时
- Exception in thread "main" java.lang.UnsatisfiedLinkError: com.
- android 怎么重新设置锚点
- Exception in thread "main" java.lang.InstantiationError:
- Exception in thread "Thread-7" java.lang.UnsatisfiedLinkError:
- android UI界面设计解决方案
- android 图片对象获取的有关问题
- Exception in thread "main" java.lang.NoClassDefFound:HelloWorld,该怎么处理
- android 怎么调用淘宝支付宝接口
- Android 沿袭InputMethodService自定义输入法
- android 关于服务连接的疑义
- 这个是什么东东 Pool thread stack traces
- android 两个activity如何通信
- android 怎么实现对view的放大和缩小
- android 教程解决方法
- android ID,该如何处理