android中handler使用总结
2014-01-03 11:09
417 查看
首先为什么要使用handler,因为在android中UI的更新是一个比较麻烦的事,必须在主线程中(UI线程)更新,容易出现长时间等待错误,而有一些任务是比较耗时的,比如网络操作,这样的话,如何才能保证UI的更新的实时性呢,使用Handler。
handler是可以运行在主线程中的,正是因为这样的特点,满足了上面的要求(UI更新必须在主线程中),直接看代码:
另外要说的是handler使用的时候需要注意的问题,如果这里不是使用handler.post,而是使用handler.postDelayed,需要注意一个内存溢出的问题
有两种解决方法,一种就是在destory中removehandler,第二种就是采用弱引用
handler是可以运行在主线程中的,正是因为这样的特点,满足了上面的要求(UI更新必须在主线程中),直接看代码:
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; //通过handler来更新UI public class HandlerUiUpdate extends Activity implements OnClickListener{ Handler handler; TextView textview; Button button; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.handleruiupdate); handler = new Handler(); textview = (TextView)findViewById(R.id.textView1); button = (Button)findViewById(R.id.button1); button.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub if(v == button) { th.start(); } } Thread th = new Thread(new Runnable() { //定义一个新的线程,线程中可以做复杂的耗时任务,然后通过handler的post方法 @Override public void run() { // TODO Auto-generated method stub handler.post(new Runnable(){ @Override public void run() { // TODO Auto-generated method stub textview.setText("test"); } }); } }); }
另外要说的是handler使用的时候需要注意的问题,如果这里不是使用handler.post,而是使用handler.postDelayed,需要注意一个内存溢出的问题
有两种解决方法,一种就是在destory中removehandler,第二种就是采用弱引用
相关文章推荐
- Android-Handler 总结(Handler 的使用 ,Looper , MessageQueue , HandlerThread )
- android中handler的一些总结以及使用(一)之handler的基本用法
- Android开发笔记 Handler使用总结
- Android的HandlerThread的使用总结
- Android HandlerThread 总结使用
- Android HandlerThread 总结使用
- android中handler的一些总结以及使用(二)之handle使用时用到的几个主要方法介绍
- Android的Handler使用总结
- Android HandlerThread 总结使用
- Android中Handler使用总结
- Android HandlerThread 总结使用
- Android-Handler 总结(Handler 的使用 ,Looper , MessageQueue , HandlerThread )
- Android Handler、Loop 的简单使用 和 HandlerThread 总结使用
- android中handler的一些总结以及使用(三)之HandleThread的使用
- Android HandlerThread使用总结
- Android中使用Handler造成内存泄露的分析总结
- Android中使用Handler造成内存泄露的分析和总结
- Android HandlerThread使用总结
- Android学习总结(十七) ———— Handler 的使用
- Android HandlerThread 总结使用