Android含文档server结束(client UI接口异步请求的一部分)三

在本文中,AsyncTask为了实现异步请求,详细代码如下所示的:

public class downloadActivity extends Activity {

	private TextView myTextView=null;
	private Button button=null;
	private static final String path="http://192.168.0.179:8080/Myweb/download.do";
	private ProgressDialog progressDialog=null;
	private URL url=null;
   @Override
   protected void onCreate(Bundle savedInstanceState) {

	  super.onCreate(savedInstanceState);
	  setContentView(R.layout.download);

	  //获取传过来的用户名
	  Intent intent = getIntent();
	  String value = intent.getStringExtra("username");
	  value="hello"+" "+value;
	   //
	  myTextView = (TextView) findViewById(R.id.textView1);
	  myTextView.setText(value);
	  button=(Button)this.findViewById(R.id.download_btn);
	  progressDialog=new ProgressDialog(this);
	  progressDialog.setCancelable(false);
	  progressDialog.setTitle("提示");
	  progressDialog.setMessage("请耐心等待,文件正在下载中....");
	  try {
		url=new URL(path);
	  } catch (MalformedURLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	  }
	  button.setOnClickListener(new OnClickListener() {

		public void onClick(View arg0) {
			//progressDialog.show();
			 new DownloadFilesTask().execute(url);

		}
	});

    }

   private class DownloadFilesTask extends AsyncTask<URL, Void, Void> {

	@Override
	protected void onPreExecute() {
		progressDialog.show();
		super.onPreExecute();
	}
	@Override
	protected Void doInBackground(URL... urls) {
		httpUtils.sendDownloadPost(urls[0]);
		return null;
	} 

	@Override
	protected void onPostExecute(Void result) {
		progressDialog.dismiss();
		super.onPostExecute(result);
	}
   }

}

在注冊时,使用Intent传递了username数据。

AsyncTask<URL, Void, Void>

主要有三个參数

  1. Params, the type of the parameters sent to the task upon execution.  本文传递URL数据
  2. Progress, the type of the progress units published during the background computation.//进度条
  3. Result, the type of the result of the background computation.  //结果

本文未採用进度条形式,仅仅使用了ProgressDialog,故第二个參数置为空,第三个參数选取时,本文在httpUtils包类已经写入文件到sd卡,故也置为空。

重写的方法:

  1. onPreExecute(),
    invoked on the UI thread immediately after the task is executed. This step is normally used to setup the task, for instance by showing a progress bar in the user interface.  UI主线程中,初始化參数
  2. doInBackground(Params...),
    invoked on the background thread immediately after onPreExecute() finishes
    executing. This step is used to perform background computation that can take a long time. The parameters of the asynchronous task are passed to this step. The result of the computation must be returned by this step and will be passed back to the last step.
    This step can also use publishProgress(Progress...) to
    publish one or more units of progress. These values are published on the UI thread, in theonProgressUpdate(Progress...) step.
     非主线程。耗时操作
  3. onProgressUpdate(Progress...),
    invoked on the UI thread after a call to publishProgress(Progress...).
    The timing of the execution is undefined. This method is used to display any form of progress in the user interface while the background computation is still executing. For instance, it can be used to animate a progress bar or show logs in a text field.
  4. onPostExecute(Result),
    invoked on the UI thread after the background computation finishes. The result of the background computation is passed to this step as a parameter.  结果更新
时间: 2024-09-30 00:02:53

Android含文档server结束(client UI接口异步请求的一部分)三的相关文章

Andriod文件下载含服务器端(客户端 UI界面异步请求部分)三

本文采用AsyncTask来实现异步请求,具体代码如下: public class downloadActivity extends Activity { private TextView myTextView=null; private Button button=null; private static final String path="http://192.168.0.179:8080/Myweb/download.do"; private ProgressDialog pr

android学习2-学习使用android帮助文档

引言: 无论学习vc,java还是其他语言,除了需要很熟悉的搭配开发环境外,还需要很熟练的从官方的帮助文档中获取我们需要的知识点.在SDK Manager中下载时,一定选择帮助文档下载到本地 下载完成后,我们在本地文件夹D:\android-sdk\docs\reference\index.html中打开帮助文档 帮助文档是按功能分类的.我先看下android提供的服务,也方便我们使用时索引 android.app :提供高层的程序模型.提供基本的运行环境 android.content 包含各

解决android帮助文档打开慢

经查是因为本地文档中的网页有如下两段js代码会联网加载信息,将其注释掉后就好了 <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto"> <script src="http://www.google.com

三种方法解决android帮助文档打开慢

三种方法解决android帮助文档打开慢 经查是因为本地文档中的网页有如下两段js代码会联网加载信息,将其注释掉后就好了 <link rel="stylesheet" href="http://fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto"> <script src="

提高打开Android本地文档的速度

很多Android开发者在参考Android官方API时,都有一个令人头疼的问题:打开一个index.html平均都需要几分钟甚至更长,尤其是在打开API 8以上的版本的时候.难道是网速不够好?但笔者使用的是网通8M的宽带,所以基本上可以排除网速的问题.难道是浏览器的问题?笔者尝试分别使用IE11.谷歌浏览器.火狐浏览器.遨游等主流的浏览器来测试打开速度,发现都是一样慢的像蜗牛!最后,笔者无奈只好查看API页面源代码,发现页面加载的有这样两端代码: <!-- STYLESHEETS --> &

加快Android离线文档的访问速度

OptAndroidDocs 背景: 自从Google被墙了之后,访问Android的API文档一直是个问题.虽然Android SDK可以将开发文档下载下来离线查看,但是由于文档中仍然链接Google的在线资源导(js,fonts等)致访问速度仍然很慢. 网上大概有2种方法: 采用脚本删掉html文件中对在线资源的引用(网上也有别人处理过的可以下载) 是脱机查看,有人还在chrome下写了个插件. 但是我对以上两种方法还不够满意: Android文档更新之后,需要重新处理.脚本很慢,等待网友提

Google Android开发者文档系列-创建有内容分享特性的应用之共享文件

Sharing a File(共享文件) 该系列文章是我在学习Google开发者文档时结合谷歌翻译和自身理解编写的,希望对学习Android开发的朋友带来些便利,由于个人翻译水平有限,所以内容包含原文和译文,希望浏览者结合理解,以免步入我可能错译的误区.在此感谢http://android.xsoftlab.net/提供的镜像,希望转载者注明出处http://blog.csdn.net/u014031072/article/details/51596803方便查看最新博客 Once you ha

Google Android开发者文档系列-与其他应用程序交互之使用户跳转到其它应用程序

Sending the User to Another App(使用户跳转到其它应用程序) 该系列文章是我在学习Google开发者文档时结合谷歌翻译和自身理解编写的,希望对学习Android开发的朋友带来些便利,由于个人翻译水平有限,所以内容包含原文和译文,希望浏览者结合理解,以免步入我可能错译的误区.在此感谢http://android.xsoftlab.net/提供的镜像,希望转载者注明出处http://blog.csdn.net/u014031072/article/details/515

Android API 文档 离线秒开方法

也是近期才看Android开发,可是.它的API文档不管是在线还是离线的,实在是慢得不敢恭维.今天调试了一下.发现它自己请求了几个在线的文件,那几个文件由于谷歌被封的原因请求时间比較长.于是就查看了一下网页源代码将,这些请求的路径所有置空.发现打开速度立刻就上去了. 事实上替换的过程挺消耗电脑性能.大家就不用反复做了.直接在我的百度网盘下载就能够了. 使用方法和曾经一样.请到 reference/packages.html 開始你的Android 开发之旅. 下载地址 http://pan.ba