Android 三种线程使用方法
来源:互联网 发布:淘宝一件代发能赚钱吗 编辑:程序博客网 时间:2024/05/08 10:12
Android中三种线程使用方法
第一种:Thread
示例代码如下
new Thread(new Runnable() { @Override public void run() { //在此调用需要在线程中调用的方法 } }).start();
第二种:runOnUiThread
示例代码如下
runOnUiThread(new Runnable() { @Override public void run() { //在此调用需要在线程中调用的方法 } });
第三种:Handler
示例代码如下
Handler hhh = new Handler(); hhh.post(new Runnable() { @Override public void run() { // 在此调用需要在线程中调用的方法 } });
下面看看在项目中如何使用上面三种线程
创建一个Android项目
我创建三个按钮,分别调用不同种类的线程,布局文件如下(不做过多解释)
<?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" > <Button android:id="@+id/One" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/One" /> <Button android:id="@+id/Two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/Two" /> <Button android:id="@+id/Three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/Three" /></LinearLayout>
主Activity代码如下
package com.example.testunity;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity { //定义三个按钮 private Button OneBtn; private Button TwoBtn; private Button ThreeBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置视图 setContentView(R.layout.main); //获取按钮 OneBtn = (Button)this.findViewById(R.id.One); //给按钮添加点击监听事件 OneBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 调用我的第一种方法 One(); } }); //获取按钮 TwoBtn = (Button)this.findViewById(R.id.Two); //给按钮添加点击监听事件 TwoBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 调用我的第二种方法 Two(); } }); //获取按钮 ThreeBtn = (Button)this.findViewById(R.id.Three); //给按钮添加点击监听事件 ThreeBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // 调用我的第三种方法 Three(); } }); } //第一种 Thread 使用方法 private void One() { //Thread 类中有很多方法,在此仅使用一种代码示范 //有兴趣的自己去查更多的Thread方法 new Thread(new Runnable() { @Override public void run() { // 在此处调用自己的方法 // 打印一个 Tag 为 "AAA"的日志 Log.i("AAA", "One "); } }).start(); } //第二种 runOnUiThread private void Two() { // 更多 runOnUiThread 使用方法自己查询 runOnUiThread(new Runnable() { @Override public void run() { // 在此处调用自己的方法 // 打印一个 Tag 为 "AAA"的日志 Log.i("AAA", "TWO"); } }); } // 第三种 Handler private void Three() { //在此写了 Handler 的三种使用方法, Handler 类有很多方法, /////////////////////////////////////// Handler handler = new Handler(); Runnable runnable = new Runnable() { @Override public void run() { // 在此处调用自己的方法 // 打印一个 Tag 为 "AAA"的日志 Log.i("AAA", "THREE 1"); } }; //需要调用下面代码,启动 runnable 线程 handler.post(runnable); /////////////////////////////////////// ///////////////////////////////////// Handler hhh = new Handler(); hhh.post(new Runnable() { @Override public void run() { // 在此处调用自己的方法 // 打印一个 Tag 为 "AAA"的日志 Log.i("AAA", "THREE 2"); } }); ////////////////////////////////////// ////////////////////////////////////// //该种使用方法需要在外部传入一个消息,根据传入消息的内容 //判断调用什么方法 Handler hh = new Handler() { @Override public void handleMessage(Message msg) { // TODO Auto-generated method stub super.handleMessage(msg); // 判断传入的消息,选择调用 switch (msg.what) { case 1: // 打印一个 Tag 为 "AAA"的日志 Log.i("AAA", "THREE 3"); break; case 2: break; } } }; //获取 hh 的message Message message = hh.obtainMessage(); //设置消息值 message.what = 1; //////////////////////////////////// }}
运行项目
界面如下
分别点击 one、two、three按钮,查看 LogCat 如下
三种线程方法成功调用
0 0
- Android 三种线程使用方法
- android-线程使用方法学习
- Android定时器的三种使用方法
- Android inflate的三种使用方法
- Android中线程的使用方法
- Android中线程的使用方法!
- Android Tthread 建立线程使用方法
- Android线程池的使用方法
- Android线程三、Handler
- CSS三种使用方法
- Android获取当前位置的三种方式及其使用方法
- android线程的交互,以及使用方法
- Android 建立线程 Thread详细使用方法
- android里面线程睡眠事件使用方法
- android里面线程睡眠事件使用方法
- android线程池的使用方法和原理
- Android NDK 开发教程三:NDK使用方法
- Android线程管理(三)
- python爬虫学习笔记(一)
- OpenCV矩阵运算
- 程序的启动和退出过程详解
- Google Gson官方教程
- const的常见用法
- Android 三种线程使用方法
- Android ShareSDK完整的集成文档
- QT4.8与VS2008配置
- 09.spritekit征程——场景的切换
- 膜牵引和卷取恒线速度通信控制系统
- Oracle中Decode()、nvl(),sign()函数使用技巧
- svn命令行下常用的几个命令
- 基于winxp/win7的svn+Apache服务器搭建
- [Unity3d] [图文]【寻路】 Waypoint 与 NavMesh 比较(转)