`

关于Thread和Handler的使用(一)

阅读更多

public class TestHandlerAty extends Activity {



private android.os.Handler mHandler = new Handler();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btn_start = (Button) findViewById(R.id.btn_start);
        Button btn_stop = (Button) findViewById(R.id.btn_stop);
        btn_start.setOnClickListener(new View.OnClickListener() {



@Override

public void onClick(View v) {

mHandler.post(mThread); // 开始调用线程,执行run()方法,输出run...

}

});
        btn_stop.setOnClickListener(new View.OnClickListener() {



@Override

public void onClick(View v) {

mHandler.removeCallbacks(mThread); // 移除mThread,不再输出run...

}

});
    }

    private Thread mThread = new Thread(new Runnable(){


@Override

public void run() {

Log.d("test", "run...");

mHandler.postDelayed(mThread, 3000);// 3秒钟之后执行mThread,即run()方法,输出run...

}

    });

}

这是一个简单的测试例子,源码

分享到:
评论

相关推荐

    测试Thread中使用Handler修改

    在实际项目中,还可以使用`AsyncTask`或`HandlerThread`等高级组件,它们都基于`Thread`和`Handler`,提供了更简洁的API来处理多线程通信。但无论使用哪种方式,理解`Thread`和`Handler`的工作原理对于提升Android...

    android service thread toast handler

    项目名"ServiceToast"可能表示这是一个关于如何在`Service`中使用`Thread`和`Handler`来显示`Toast`的示例。开发者可能通过创建一个新的`Thread`,在该线程中执行任务,并使用`Handler`将完成任务的消息传回主线程,...

    Android 多线程:使用Thread和Handler

    本篇文章将详细探讨如何在Android中使用Thread和Handler实现多线程通信,确保非UI线程能够安全地更新UI。 首先,Android应用程序的主线程(UI线程)主要负责管理用户界面,处理用户交互事件。主线程不允许执行长...

    Thread_Handler_MessageDownload.zip

    总结来说,"Thread_Handler_MessageDownload"项目通过实践展示了如何在Android中使用Thread进行后台操作,利用Handler和Message在工作线程与主线程之间进行高效、安全的通信,实现网络图片的异步加载。这种方法对于...

    AsyncTask 与Thread加Handler处理消息比较

    本篇文章将详细探讨两种常见的异步处理方式:`AsyncTask`和`Thread`配合`Handler`,并进行对比分析。 `AsyncTask`是Android SDK提供的一种轻量级的异步任务处理机制,它主要用于短时间的后台操作,如网络请求、数据...

    ndroid异步处理一:使用Thread+Handler实现非UI线程更新UI界面

    为了解决这个问题,Android提供了多种异步处理机制,其中一种常见的方式是使用`Thread`配合`Handler`来实现非UI线程执行耗时任务并更新UI。本篇将详细介绍这一方法。 首先,我们需要理解Android的线程模型。Android...

    Handler + Thread + Looper

    AsyncTask内部就使用了Handler、Thread和Looper的概念,它会在一个工作线程中执行任务,然后通过回调方法在主线程中更新UI。 总的来说,理解和熟练运用Handler、Thread和Looper对于Android开发者至关重要,因为它们...

    171227-03.在Java中使用Android的Thread和Handler机制.java

    171227-03.在Java中使用Android的Thread和Handler机制.java

    Handler+Thread

    现在,让我们结合`Handler`和`Thread`来实现一个简单的网络图片获取和显示的Demo: 1. **创建工作线程**:首先,我们需要创建一个新的线程来执行网络请求。通常,我们会定义一个`Runnable`对象,并在`run()`方法中...

    Android Thread Handler

    在Android应用开发中,线程(Thread)和Handler是实现多任务并行处理以及界面更新的关键组件。Android系统是一个单线程模型,主线程(UI线程)负责处理用户交互和绘制界面,而其他工作通常需要在后台线程中执行,以...

    Handler的介绍和使用方法

    以下是一个简单的`Handler`使用示例: ```java public class MainActivity extends AppCompatActivity { private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { ...

    安卓handler的使用

    本篇将详细讲解Handler的使用,包括如何创建Handler对象、如何发送和处理消息,以及主线程与子线程之间的消息传递。 首先,Handler的基本结构主要包括三部分:Handler对象、Looper循环器和Message消息对象。在...

    Android:Handler的post()方法和Thread的start()方法执行Thread的run()方法的区别

    * 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启...

    WebView+Thread(内置Handler)实现应用内浏览器demo1

    "WebView+Thread(内置Handler)实现应用内浏览器demo1" 这个标题揭示了我们将在一个Android应用程序中使用WebView组件,并结合线程(Thread)以及内置的Handler机制来创建一个简易的内置浏览器。这个"demo1"表明这...

    Android异步处理一:使用Thread+Handler实现非UI线程更新UI界面

    本文将详细介绍如何使用Thread和Handler来实现这一过程。 #### 使用Thread+Handler更新UI ### 1. Thread与Handler基础 - **Thread**:Java中的线程类,用于创建并执行新线程。在Android中,可以用来执行耗时任务,...

    安卓关于handler的使用

    在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要...在提供的文件`thread_test1`中,可能包含了具体的`Handler`使用示例代码,你可以参考这些代码进一步理解`Handler`的工作原理和使用方法。

    Android线程模式(handler,thread,looper)

    总结一下,Android的Handler-Thread-Looper模型是多线程通信的关键,通过Handler发送消息,Thread执行后台任务,Looper负责消息的调度,共同保证了UI线程的流畅性和应用程序的高效运行。开发者应当熟练掌握这些概念...

    Thread、Handler和HandlerThread关系详解

    ,这个题目有点意思,对于很多人来说,可能对Thread和Handler很熟悉,主要涉及到Android的消息机制(Handler、Message、Looper、MessageQueue),详见《 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及...

    Handler与AsyncTask使用示例

    现在让我们来看一个`Handler`和`AsyncTask`结合使用的示例: ```java public class MainActivity extends AppCompatActivity { private Handler mHandler = new Handler() { @Override public void ...

Global site tag (gtag.js) - Google Analytics