好贷网好贷款

handler详解

发布时间:2016-12-4 18:34:32 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"handler详解",主要涉及到handler详解方面的内容,对于handler详解感兴趣的同学可以参考一下。

原理图: 1)Handler采用消息模式,用于子线程和主线程之间的通信。当子线程完成操作时,就会给主线程发一个 消息。通知主线程进行显示更新。。。 2)只有主线程才能对显示进行操作。 3)activity程序默认是一个单独的线程里面来运行。onCreate()  按钮点击回调事件、对于显示的操作都是在主线程里面运行。主线程也称为UI线程。 4)联网获取数据、大文件的拷贝都需要放置在子线程来操作。 使用 1、main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv_number" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="0" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="add" android:text="增加" /> </LinearLayout> 2、MainActivity package com.njupt.thread_handler1; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.app.Activity; import android.view.Menu; import android.view.View; import android.widget.TextView; public class MainActivity extends Activity { private static final int UPDATE_DISPLAY = 1; private TextView tv_number; Handler mHandler = new Handler(){ public void handleMessage(android.os.Message msg) { switch (msg.what) { case UPDATE_DISPLAY: int i = (Integer) msg.obj; tv_number.setText("章泽天是我的女神。。。"+i + ""); break; default: break; } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv_number = (TextView) findViewById(R.id.tv_number); } public void add(View v){ new Thread(){ public void run() { int i = 0; while(i < 60){ i = i + 1; SystemClock.sleep(1000); Message msg = new Message(); msg.what = UPDATE_DISPLAY; msg.obj = i; mHandler.sendMessage(msg); } }; }.start(); } @Override public 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; } }

上一篇:hdu3488解题报告
下一篇:Unity Application Block 1.0系列(3): 属性/设值方法注入(Property/Setter Injection)

相关文章

关键词: handler详解

相关评论