在Android中可以通过handler方法完成数据的线程间的传递,但一定要将handler得到的数据通过loop传递到主线程再更新UI吗?其实也可以直接使用handler设计的post方法进行实现,handler的post方法是在主线程运行的,可以直接进行UI的更新操作。

MainActivity的代码

package com.example.e15_handler_post;import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;
import android.view.Menu;
import android.widget.ImageView;public class MainActivity extends Activity {private ImageView imageView;private Handler myhandler=new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);imageView=(ImageView)this.findViewById(R.id.imageView1);new MyThread().start();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}public class MyThread extends Thread{byte[] data=new byte[1024];int len=0;@Overridepublic void run() {// TODO Auto-generated method stubtry {URL url=new URL("http://111.0.229.223:8080/http/hangzhou.jpg");try {HttpURLConnection connection=(HttpURLConnection) url.openConnection();InputStream inputStream=connection.getInputStream();ByteArrayOutputStream arrayOutputStream=new ByteArrayOutputStream();while((len=inputStream.read(data))!=-1){arrayOutputStream.write(data, 0, len);}data=arrayOutputStream.toByteArray();Log.i("info", "------->"+data.length);} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();}Runnable runnable=new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubBitmap bm=BitmapFactory.decodeByteArray(data, 0,data.length );imageView.setImageBitmap(bm);}};myhandler.post(runnable);}}}

Android开发之通过Handler的post方法更新UI相关推荐

  1. Android开发环境搭建及常见问题解决方法

    Android开发环境搭建及常见问题解决方法 参考文章: (1)Android开发环境搭建及常见问题解决方法 (2)https://www.cnblogs.com/rwxwsblog/p/476978 ...

  2. 文件管理器android实现,Android开发之简单文件管理器实现方法

    易采站长站为您分析Android开发之简单文件管理器实现方法,简单实现了Android的文件目录查看,文件重命名,打开,删除等功能,需要的朋友可以参考下 本文实例讲述了Android开发之简单文件管理 ...

  3. Android开发——RecyclerView特性以及基本使用方法(二)

    0.  前言 随着Android的发展,虽然ListView依旧重要,但RecyclerView确实越来越多的被大家使用.但显然并不能说RecyclerView就一定优于ListView,而是应该根据 ...

  4. Android开发中调用系统窗口的方法

    //直接拨号 Intent callIntent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:12345678")); start ...

  5. android自定义省略号,Android开发自定义TextView省略号样式的方法

    本文实例讲述了Android开发自定义TextView省略号样式的方法.分享给大家供大家参考,具体如下: 在布局xml中设置textView的字段 android:maxLines="2&q ...

  6. android打地鼠设计报告,android开发中利用handler制作一个打地鼠小游戏

    android开发中利用handler制作一个打地鼠小游戏 发布时间:2020-11-25 15:21:11 来源:亿速云 阅读:136 作者:Leah 这期内容当中小编将会给大家带来有关androi ...

  7. 关于android开发中startActivityForResult废弃的替换方法调用

    关于android开发中startActivityForResult废弃的替换方法调用 在最近一段时间中,能在开发时看到在android studio中,startActivityForResult方 ...

  8. android动画背景,Android开发之背景动画简单实现方法

    在Android开发中,我们都会接到项目的业务需求,实现应用程序背景动画的效果,接下来,爱站技术频道小编带给大家的Android开发之背景动画简单实现方法. 1.先创建动画层,有三张图片 androi ...

  9. Android开发详解:第4章《UI 控件》

    Android开发详解:第4章<UI 控件> 控件是Android程序设计的基本组成单位,通过使用控件可以高效地开发Android应用程序.所以熟练掌握控件的使用是合理.有效地进行Andr ...

最新文章

  1. SpringMVC:注解@ControllerAdvice的工作原理
  2. python面向对象重新梳理
  3. 关于智能车竞赛,你需要知道什么?
  4. 在Visual Studio 2010中实现数据驱动Coded UI Tests
  5. 手把手干货教学Matlab载波调制
  6. 面试的27个经典问题
  7. 基坑计算理论m法弹性支点法_人工冲孔轻型井点在基坑降水工程中的应用
  8. 装饰一个类及内部方法
  9. linux 上rocketMQ 安装启动
  10. OpenCV之鼠标操作
  11. [浪风分享]推荐一些不错的计算机书籍
  12. atitit. hb 原生sql跨数据库解决原理 获得hb 数据库类型运行期获得Dialect
  13. php并发访问排队_使用xdebug对php做性能分析调优
  14. wireshark抓包教程详解
  15. onSubmit的使用
  16. “茴”字有四种写法,广发有三种分期;你都知道吗?
  17. PDF文档工具箱Stirling-PDF
  18. 最简单的分压和低频滤波电路
  19. ATH10传感器读取温湿度
  20. 解决WebView内存泄漏【最干货】

热门文章

  1. linux 内核阻塞,linux内核阻塞IO
  2. 调用别的类中的变量(但是还是有问题)
  3. tomcat线程释放时间_聊下并发和Tomcat线程数(错误更正)
  4. HTTP请求中的缓存(cache)机制
  5. springboot配置文件priperties大全
  6. Hanlp分词实例:Java实现TFIDF算法
  7. Linux Centos7安装chrome浏览器
  8. 让数据为你带来无限可能性
  9. C# 轻量级ORM 编写思维
  10. iphone实现下拉列表(iOS开发 )