//activity里面不能做耗时比较长的操作、不仅会导致runtimeException、
//还会造成比较差的用户体验、需要把处理大量数据的操作放在单独的线程完成、
package com.ck;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.Button;
public class HandlerDemoActivity extends Activity {
private Button start,stop;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewByIds();
start.setOnClickListener(new startOnClickListener());
stop.setOnClickListener(new stopOnClickListener());
}
class startOnClickListener implements android.view.View.OnClickListener{
public void onClick(View v) {
//线程对象加入到执行队列
handler.post(runnable);
}
}
class stopOnClickListener implements android.view.View.OnClickListener{
public void onClick(View v) {
handler.removeCallbacks(runnable);
}
}
Handler handler = new Handler();
Runnable runnable = new Runnable(){
public void run() {
//这里加入要做的操作
System.out.println("updateThread...");
handler.postDelayed(runnable, 3000);
}
};
void findViewByIds(){
start = (Button)findViewById(R.id.start);
stop = (Button)findViewById(R.id.stop);
}
}
分享到:
相关推荐
在Android开发中,`Handler`是一个至关重要的组件,主要用于解决线程间的通信问题,尤其是在UI线程和其他工作线程之间。本篇文章将深入探讨`Handler`的使用方法,包括其基本概念、工作原理以及如何避免内存泄露和...
在Android应用开发中,Handler是一种重要的线程通信机制,它与Looper、Message紧密配合,用于在不同的线程间传递消息,解决多线程同步问题。本篇将详细讲解Handler的使用,包括如何创建Handler对象、如何发送和处理...
以下是一个简单的`Handler`使用示例: ```java public class MainActivity extends AppCompatActivity { private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { ...
1. **创建Handler实例**:在Activity中创建一个Handler实例,并重写handleMessage()方法。这个方法会在主线程中执行,因此适合用来更新UI。例如: ```java public class MainActivity extends AppCompatActivity { ...
1. Handler 是一种异步消息处理机制 2. Handler 可以将耗时的操作异步处理 3. Handler 可以用于异步处理网络请求的结果 4. Handler 可以用于异步处理数据库的读写操作 5. Handler 可以提高应用程序的性能和用户体验 ...
匿名内部类直接在需要使用Handler的地方创建,而静态内部类则需要实现一个静态的成员变量来保存Handler的引用,以避免内存泄漏。 2. **发送消息**: 使用`sendMessage()`或`post()`方法向MessageQueue中添加消息。...
我们可以在一个线程中创建Handler对象,然后在另一个线程中通过`Handler.sendMessage(Message)`方法发送消息。Message对象包含我们要传递的数据和处理消息的方法(由`what`标识)。当Message到达Handler时,会根据`...
本篇文章将详细介绍`Handler`的基本概念、工作原理以及如何在一个`Activity`中简单使用它来实现动画效果。 `Handler`的核心功能是发送和处理消息。在Android系统中,主线程负责处理用户交互,如显示界面、更新UI等...
`Handler`通常与`Looper`配合使用,创建一个消息循环,使得`Handler`能够接收到并处理来自其他线程的消息。`Handler`的工作原理是,当创建一个`Handler`对象时,它会与当前线程的`Looper`关联,然后可以发送`Message...
1. **创建Handler实例**:首先,在主线程中创建一个`Handler`实例,这个`Handler`会与主线程的`Looper`关联。 ```java Handler handler = new Handler() { @Override public void handleMessage(Message msg) { ...
在这个子线程里,我们可以使用`Handler`的`sendMessage()`或`postDelayed()`方法发送一个包含进度信息的消息。消息对象`Message`通常会携带一个回调函数,这个函数会在主线程中执行,因此可以安全地更新UI。 以下是...
本文将深入解析`Handler`的使用,以及结合`Thread`实现异步操作的具体示例。 首先,`Handler`是Android消息处理系统的核心组件,它主要用于发送和处理消息。`Handler`对象通常在主线程中创建,这样它可以处理与UI...
在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要...在提供的文件`thread_test1`中,可能包含了具体的`Handler`使用示例代码,你可以参考这些代码进一步理解`Handler`的工作原理和使用方法。
1. 每个 Handler 实例都与其创建时的线程绑定,通常为 UI 线程。 2. Handler 可以用来安排消息或 Runnable 在主线程中执行,或者在不同线程中安排动作。 3. 提供了多种方法来分发消息,包括 `post()`, `postAtTime()...
在Android开发中,Handler是一种非常重要的机制,它与线程通信密切相关,用于处理来自其他线程的消息。本篇文章将深入探讨Handler的简单使用方法,并解释其背后的原理。 首先,我们来理解Handler的基本概念。...
如果需要在工作线程中使用Handler,我们需要手动调用Looper.prepare()和Looper.loop()来启动一个Looper。 消息的生命周期始于Message的创建,通常使用Handler的obtainMessage()方法,或者直接new一个Message实例。...
1. **创建Handler** 创建Handler通常需要重写`handleMessage(Message msg)`方法,这里会定义处理消息的逻辑。有两种创建方式: - 直接构造Handler,关联到当前线程的Looper。 - 通过`Looper.prepare()`和`Looper....
1. **基本Handler使用** 基本的`Handler`使用通常涉及到创建`Handler`对象,然后在后台线程中通过`Looper`和`Message`与之交互。以下是一个简单的例子: ```java // 在主线程中创建Handler Handler mHandler = ...
1. **Handler**: Handler是Android中处理消息和调度任务的重要组件。它可以在Android主线程中执行任务,避免了在其他线程中更新UI的操作导致的线程安全问题。Handler主要有两个核心方法:`sendMessage`和`...
- **发送消息**:在另一个线程中,创建一个Message对象,并使用Handler的sendMessage()或sendEmptyMessage()方法将其发送出去。 ```java Message msg = new Message(); msg.what = 1; // 可以设置一个标识符来区分...