1线程实现客户端与服务器通信_第1页
1线程实现客户端与服务器通信_第2页
1线程实现客户端与服务器通信_第3页
1线程实现客户端与服务器通信_第4页
1线程实现客户端与服务器通信_第5页
已阅读5页,还剩4页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

线程实现客户端与服务器通信一、线程说明2一:在android中有两种实现线程thread的方法:一种是,扩展java.lang.Thread类另一种是,实现Runnable接口二:Thread类代表线程类,它的两个最主要的方法是:run()——包含线程运行时所执行的代码Start()——用于启动线程三:Handler机制,它是Runnable和Activity交互的桥梁,在run方法中发送Message,在Handler里,通过不同的Message执行不同的任务。二、代码案例3主页面mian_activity.xml<?xmlversion="1.0"encoding="utf-8"?>

<LinearLayoutxmlns:android="/apk/res/android"

xmlns:tools="/tools"

android:id="@+id/activity_main"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:gravity="center"

tools:context=".MainActivity">

<Button

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="下载图片"

android:id="@+id/btn"/>

</LinearLayout>

二、代码案例4privatestaticButtonbtn;

privatestaticContextcontext;

privatestaticStringfilePath;

privatestaticBitmapmBitmap;

privatestaticStringmSaveMessage="失败";

privatefinalstaticStringTAG="PictureActivity";

privatestaticProgressDialogmSaveDialog=null;

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main_activity);

btn=(Button)findViewById(R.id.btn);

btn.setOnClickListener(newView.OnClickListener(){

@Override

publicvoidonClick(Viewview){

donwloadImg(MainActivity.this,"21:8080/photo/test.jpg");

}

});

}主页面MainActivity.java二、代码案例5

publicstaticvoiddonwloadImg(Contextcontexts,StringfilePaths){

context=contexts;

filePath=filePaths;

mSaveDialog=ProgressDialog.show(context,"保存图片","图片正在保存中,请稍等...",true);

newThread(saveFileRunnable).start();

}

privatestaticRunnablesaveFileRunnable=newRunnable(){

@Override

publicvoidrun(){

try{

if(!TextUtils.isEmpty(filePath)){//网络图片

//对资源链接

URLurl=newURL(filePath);

//打开输入流

InputStreaminputStream=url.openStream();

//对网上资源进行下载转换位图图片

mBitmap=BitmapFactory.decodeStream(inputStream);

inputStream.close();

}

saveFile(mBitmap);

mSaveMessage="图片保存成功!";

}catch(IOExceptione){

mSaveMessage="图片保存失败!";

e.printStackTrace();

}catch(Exceptione){

e.printStackTrace();

}

messageHandler.sendMessage(messageHandler.obtainMessage());

}

};二、代码案例6

privatestaticHandlermessageHandler=newHandler(){

@Override

publicvoidhandleMessage(Messagemsg){

mSaveDialog.dismiss();

Log.d(TAG,mSaveMessage);

Toast.makeText(context,mSaveMessage,Toast.LENGTH_SHORT).show();

}

};

/**

*保存图片

*/

publicstaticvoidsaveFile(Bitmapbm)throwsIOException{

FiledirFile=newFile(Environment.getExternalStorageDirectory().getPath());

if(!dirFile.exists()){

dirFile.mkdir();

}

StringfileName=UUID.randomUUID().toString()+".jpg";

FilemyCaptureFile=newFile(Environment.getExternalStorageDirectory().getPath()+"/DCIM/Camera/"+fileName);

BufferedOutputStreambos=newBufferedOutputStream(newFileOutputStream(myCaptureFile));

press(Bitmap.CompressFormat.JPEG,80,bos);

bos.flush();

bos.close();

//把图片保存后声明这个广播事件通知系统相册有新图片到来

Intentintent=newIntent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);

Uriuri=Uri.fromFile(myCaptureFile);

intent.setData(uri);

context.sendBroadcast(intent);

}

}二、代码案例7<uses-permissionandroid:name="android.permission.INTERNET"></uses-perm

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论