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...
}
});
}
这是一个简单的测试例子,源码
分享到:
相关推荐
在实际项目中,还可以使用`AsyncTask`或`HandlerThread`等高级组件,它们都基于`Thread`和`Handler`,提供了更简洁的API来处理多线程通信。但无论使用哪种方式,理解`Thread`和`Handler`的工作原理对于提升Android...
项目名"ServiceToast"可能表示这是一个关于如何在`Service`中使用`Thread`和`Handler`来显示`Toast`的示例。开发者可能通过创建一个新的`Thread`,在该线程中执行任务,并使用`Handler`将完成任务的消息传回主线程,...
本篇文章将详细探讨如何在Android中使用Thread和Handler实现多线程通信,确保非UI线程能够安全地更新UI。 首先,Android应用程序的主线程(UI线程)主要负责管理用户界面,处理用户交互事件。主线程不允许执行长...
总结来说,"Thread_Handler_MessageDownload"项目通过实践展示了如何在Android中使用Thread进行后台操作,利用Handler和Message在工作线程与主线程之间进行高效、安全的通信,实现网络图片的异步加载。这种方法对于...
本篇文章将详细探讨两种常见的异步处理方式:`AsyncTask`和`Thread`配合`Handler`,并进行对比分析。 `AsyncTask`是Android SDK提供的一种轻量级的异步任务处理机制,它主要用于短时间的后台操作,如网络请求、数据...
为了解决这个问题,Android提供了多种异步处理机制,其中一种常见的方式是使用`Thread`配合`Handler`来实现非UI线程执行耗时任务并更新UI。本篇将详细介绍这一方法。 首先,我们需要理解Android的线程模型。Android...
AsyncTask内部就使用了Handler、Thread和Looper的概念,它会在一个工作线程中执行任务,然后通过回调方法在主线程中更新UI。 总的来说,理解和熟练运用Handler、Thread和Looper对于Android开发者至关重要,因为它们...
171227-03.在Java中使用Android的Thread和Handler机制.java
现在,让我们结合`Handler`和`Thread`来实现一个简单的网络图片获取和显示的Demo: 1. **创建工作线程**:首先,我们需要创建一个新的线程来执行网络请求。通常,我们会定义一个`Runnable`对象,并在`run()`方法中...
在Android应用开发中,线程(Thread)和Handler是实现多任务并行处理以及界面更新的关键组件。Android系统是一个单线程模型,主线程(UI线程)负责处理用户交互和绘制界面,而其他工作通常需要在后台线程中执行,以...
以下是一个简单的`Handler`使用示例: ```java public class MainActivity extends AppCompatActivity { private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { ...
本篇将详细讲解Handler的使用,包括如何创建Handler对象、如何发送和处理消息,以及主线程与子线程之间的消息传递。 首先,Handler的基本结构主要包括三部分:Handler对象、Looper循环器和Message消息对象。在...
* 创建一个Handler对象,使用Handler对象h把Runnable的对象r压入队列 * 此时只会会执行Run()方法,但是不会开启新的线程 */ //Handler h = new Handler(); //h.post(r); /* * 在java中真正开启...
"WebView+Thread(内置Handler)实现应用内浏览器demo1" 这个标题揭示了我们将在一个Android应用程序中使用WebView组件,并结合线程(Thread)以及内置的Handler机制来创建一个简易的内置浏览器。这个"demo1"表明这...
本文将详细介绍如何使用Thread和Handler来实现这一过程。 #### 使用Thread+Handler更新UI ### 1. Thread与Handler基础 - **Thread**:Java中的线程类,用于创建并执行新线程。在Android中,可以用来执行耗时任务,...
在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要...在提供的文件`thread_test1`中,可能包含了具体的`Handler`使用示例代码,你可以参考这些代码进一步理解`Handler`的工作原理和使用方法。
总结一下,Android的Handler-Thread-Looper模型是多线程通信的关键,通过Handler发送消息,Thread执行后台任务,Looper负责消息的调度,共同保证了UI线程的流畅性和应用程序的高效运行。开发者应当熟练掌握这些概念...
,这个题目有点意思,对于很多人来说,可能对Thread和Handler很熟悉,主要涉及到Android的消息机制(Handler、Message、Looper、MessageQueue),详见《 从Handler.post(Runnable r)再一次梳理Android的消息机制(以及...
现在让我们来看一个`Handler`和`AsyncTask`结合使用的示例: ```java public class MainActivity extends AppCompatActivity { private Handler mHandler = new Handler() { @Override public void ...