一:AsyncTask 的使用

(1)activity_main.xml

<TextView
android:id="@+id/tvInfo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" /> <ProgressBar
android:layout_below="@id/tvInfo"
android:id="@+id/asyncPb"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:visibility="gone" />

(2)MainActivity.java

public class MainActivity extends Activity {
private ProgressBar asyncPb = null;
private TextView tvInfo = null; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); tvInfo = (TextView)findViewById(R.id.tvInfo); String params = "Welcome to here";
new MyAsyncTask().execute(params);
} private class MyAsyncTask extends AsyncTask<String, Integer, String>{
@Override
protected void onPreExecute() {
//做一些预处理
asyncPb = (ProgressBar)findViewById(R.id.asyncPb);
asyncPb.setVisibility(View.VISIBLE);
} @Override
protected String doInBackground(String... params) {
//执行耗时操作,网络任务、文件操作、数据库操作、复杂计算操作
int myProgress = 0;
int length = params[0].length(); for(int i=1; i<=length; i++){
myProgress = i;
//模拟耗时操作
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
publishProgress((int)((myProgress/(float)length)*100));
} //它将传递给onPostExecute
return params[0];
} @Override
protected void onProgressUpdate(Integer... values) {
//更新进度条
asyncPb.setProgress(values[0]);
tvInfo.setText("已加载:"+(values[0])+"%");
} @Override
protected void onPostExecute(String result) {
//更新UI
tvInfo.setText("加载完成:"+result);
}
}
}

 二:HttpGet

public static String getRequest(String url){
String result = "";
HttpClient client = new DefaultHttpClient(); HttpGet get = new HttpGet(url); try {
HttpParams httpParams = client.getParams(); HttpConnectionParams.setConnectionTimeout(httpParams, 3000);
HttpConnectionParams.setSoTimeout(httpParams, 5000); HttpResponse response = client.execute(get); if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){
result = EntityUtils.toString(response.getEntity()).trim();
}
} catch (Exception e) {
//连接超时
} return result;
}

三:Volley POST

private RequestQueue rQueue = null;

rQueue = WzhVolley.getRequestQueue();

StringRequest postRequest = new StringRequest(
Request.Method.POST,
URL,
createDoSuccess(),
createDoError()){
protected Map<String,String> getParams(){
Map<String,String> params = new HashMap<String,String>();
params.put(key,value);
return params;
}
}; postRequest.setRetryPolicy(new
DefaultRetryPolicy(WR.DEFAULT_TIMEOUT_MS, WR.DEFAULT_MAX_RETRIES, WR.DEFAULT_BACKOFF_MULT));
rQueue.add(postRequest); private Response.Listener<String> createDoSuccess(){
return new Response.Listener<String>(){
public void onResponse(String arg0){
//...
JSONObject jsonObj = new JSONObject(arg0);
//or
JSONArray jsonArr = new JSONArray(arg0);
}
};
}
private Response.ErrorListener createDoError(){
return new Response.ErrorListener(){
public void onErrorResponse(VolleyError arg0){
//...
}
};
}

Android 中常用代码片段的更多相关文章

  1. 36个Android开发常用代码片段

    //36个Android开发常用代码片段 //拨打电话 public static void call(Context context, String phoneNumber) { context.s ...

  2. Android开发常用代码片段

    拨打电话 public static void call(Context context, String phoneNumber) { context.startActivity( new Inten ...

  3. [工作总结]jQuery在工作开发中常用代码片段集锦(1-10)

    1.jQuery,JS实现tab切换 原生JS实现 HTML代码如下: <div class="wrap"> <ul id="tag"> ...

  4. 转--Android实用的代码片段 常用代码总结

    这篇文章主要介绍了Android实用的代码片段 常用代码总结,需要的朋友可以参考下     1:查看是否有存储卡插入 复制代码 代码如下: String status=Environment.getE ...

  5. C#常用代码片段备忘

    以下是从visual studio中整理出来的常用代码片段,以作备忘 快捷键: eh 用途: 类中事件实现函数模板 private void MyMethod(object sender, Event ...

  6. 使用 Git 来管理 Xcode 中的代码片段

    使用 Git 来管理 Xcode 中的代码片段 代码片段介绍 xcode4 引入了一个新 feature: code snippets,在整个界面的右下角,可以通过快捷键:cmd + ctrl + o ...

  7. 如何在VScode中添加代码片段

    拿 VUE 举例,新建 VUE 文件,输入前缀,出现代码段 文件 --->  首选项 ---> 用户代码片段  在输入框中输入 vue ,找到 vue.json ,然后在 vue.json ...

  8. sublimetext3中保存代码片段

    在日常的开发工作中,不断重复上一次敲过的代码,有时确实感到伐木累."蓝瘦"(难受)."香菇"(想哭),大概表达的也是这样的心境吧!:grinning: 所以,在 ...

  9. Android中常用控件及属性

    在之前的博客为大家带来了很多关于Android和jsp的介绍,本篇将为大家带来,关于Andriod中常用控件及属性的使用方法,目的方便大家遗忘时,及时复习参考.好了废话不多讲,现在开始我们本篇内容的介 ...

随机推荐

  1. 开心菜鸟学习系列学习笔记------------nodejs util公共函数

    global  在最外层定义的变量:    全局对象的属性:    隐式定义的变量(未定义直接赋值的变量).  一.process   process 是一个全局变量,即 global 对象的属性 ...

  2. Android中图片的目录

    图片放在hdpi及在mdpi中的效果是不一样的 http://blog.csdn.net/loongggdroid/article/details/9469935

  3. CString 的一些事

    MFC Visual Studio 2008 CString 的 Format 中不能这样存在str.Format(_T("Cool(\%)"));  或者 str.Format( ...

  4. 7款纯CSS3实现的炫酷动画应用|慕课网只学有用的!

    关于我们 | 时尚廊 ♦ 时尚廊,中国大陆地区首家以"Lounge"为概念的艺文空间 ♦  7款纯CSS3实现的炫酷动画应用|慕课网只学有用的! 7款纯CSS3实现的炫酷动画应用

  5. 计算机视觉库 SimpleCV

    SimpleCV首页.文档和下载 - 计算机视觉库 - 开源中国社区     计算机视觉库 SimpleCV 编辑/纠错    分享到     新浪微博腾讯微博    已用    +0    收藏 + ...

  6. C++小知识之sprintf用法

    sprintf   字串格式化命令,主要功能是把格式化的数据写入某个字符串中.sprintf 是个变参函数,使用时经常出问题,而且只要出问题通常就是能导致程序崩溃的内存访问错误,但好在由sprintf ...

  7. 一个sql很多个not like的简化语句

    如: select * from table where `zongbu` not like '%北京%' and `zongbu` not like '%上海%' and `zongbu` not ...

  8. Javascript刷新页面的几种方法:

    Javascript刷新页面的几种方法: 1    history.go(0) 2    window.location.reload() window.location.reload(true)  ...

  9. Prototypes analyze(二叉排序树,不同树形个数)

    Prototypes analyze 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 ALpha Ceiling Manufacturers (ACM) is ana ...

  10. redmine fastcgi常常崩溃的解决方式

    最终找到了解决方法,在以下的文件里加入两行就可以: /home/redmine/redmine-2.5.1/public/dispatch.fcgi require 'rubygems' requir ...