`
2014马年
  • 浏览: 121547 次
  • 性别: Icon_minigender_1
  • 来自: 晋中
社区版块
存档分类
最新评论

android 的handler 注意

阅读更多

重要:

Handler 在activity销毁的时候,不会被销毁,里面的线程依然会执行。

 

简介:

http://developer.android.com/reference/android/os/Handler.html

 

一个Handler允许你发送一个程序Message和Runnable对象到线程的消息队列中里。每个handler实例都关联一个单独的线程和它的消息队列。当创建一个Handler,它的线程和消息对象都会绑定在创建它的线程上。这个线程会传递Message和runnable到消息队列,然后在离开消息队列的时候执行他们。

 

当handler姐都信息,你可以指定消息队列在就绪后立即执行,或者延迟一点时间执行。

 

当一个程序被创建,主线程将主要运行消息队列和创建窗口。你可以创建自己的线程,在通过handler和主线程通讯。调用sendMessage 和 post 是一样的。Runnable会在适当的时候被执行。

 

使用注意:

private void pp(int delay) {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                pp(1000);
            }
        }, delay);
    }

 上述方法会一直循环,所以在Activity销毁的时候必须手动的停止这个死循环。

 

加入变量 thisActivityDestory 放在死循环里面。

注意onDestory 在Activity销毁的时候并不一定会被调用。

 

    @Override
    protected void onDestroy() {
        //将线程销毁掉
        thisActivityDestory=true;
        super.onDestroy();
    }

 

private void pp(int delay) {
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                if(!thisActivityDestory){
                pp(1000);
                }
            }
        }, delay);
    }

 

 

分享到:
评论

相关推荐

    android handler的一些测试

    在Android开发中,`Handler`、`Looper`和`Message`是实现线程间通信的重要组件,特别是用于主线程(UI线程)与其他工作线程...在测试中,确保正确地初始化和使用`Handler`,并注意线程安全,可以避免许多潜在的问题。

    Android Handler模拟进度条更新

    注意,为了防止内存泄漏,记得在Activity或Fragment销毁时移除Handler的回调: ```java @Override protected void onDestroy() { super.onDestroy(); mHandler.removeCallbacksAndMessages(null); // 移除所有待...

    android demo,使用Handler的postDelay,Runnable run实现延时3秒的splash。

    本示例中的“android demo”就是关于如何利用Handler的`postDelayed`方法和`Runnable`接口来实现一个延时3秒的Splash Screen。下面将详细解释这个过程以及涉及的技术点。 1. **Handler**: Handler是Android中处理...

    Android Handler Looper

    在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制,尤其是在主线程与工作线程之间同步数据和执行UI更新时。Handler、Looper和Message三者结合使用,构建了一个消息处理系统,使得非UI线程...

    Android_Handler的线程队列Demo

    在Android应用开发中,Handler、Looper和Message是实现线程间通信的重要机制。这个"Android_Handler的线程队列Demo"旨在演示如何有效地利用Handler来处理线程间的通信,特别是主线程(UI线程)与工作线程之间的交互...

    Android中的Handler的具体用法

    在Android开发中,`Handler`是一个至关重要的组件,它用于处理与UI线程交互的异步消息通信。本文将深入探讨`Handler`的工作原理、如何使用以及它在Android应用程序中的实际应用。 `Handler`机制是Android系统为了...

    Android Handler机制实例

    注意,如果Handler实例与Activity绑定,且Handler在消息队列中有未处理的消息,那么Activity可能无法正常销毁,导致内存泄漏。为避免这个问题,可以使用WeakReference持有Handler,确保当Activity被回收时,Handler...

    android Handler详细使用方法实例

    需要注意的是,由于Handler机制是基于消息循环机制的,所以Handler只能用于同一个线程内的消息处理,如果要将Handler用在其他线程,则必须指定Looper。在主线程(UI线程)中,系统已经为我们准备了一个Looper对象,...

    Android中handler的使用

    在Android开发中,Handler是处理多线程通信的关键机制,尤其在UI更新和异步任务中扮演着重要角色。本文将深入探讨Handler的工作原理、如何使用以及它在处理多线程中的应用。 Handler的主要功能是发送和处理消息,它...

    Android Handler线程间的调度

    这篇博客"Android Handler线程间的调度"深入探讨了如何利用Handler来实现不同线程之间的交互。 Handler是Android中的一个关键组件,它与Looper和Message紧密配合,构成了Android的消息处理机制。主要负责在主线程中...

    android计数器(Handler消息传递机制)

    注意在不需要`Handler`时,要记得移除所有回调(通过`removeCallbacksAndMessages(null)`),避免因消息未处理导致的内存泄漏。 通过这个简单的计数器应用,我们可以理解`Handler`如何协同`Looper`和`MessageQueue...

    Android Handler的使用1

    在使用Handler时,有几个重要的注意事项: 1. **线程安全**:由于Handler主要在主线程(UI线程)中工作,因此确保在多线程环境下正确同步访问Handler非常重要,避免引发线程安全问题。 2. **内存泄漏**:如果...

    Android Handler的原理1

    为了处理这些后台任务并同步更新UI,Android引入了Handler机制。Handler是Android消息传递的核心组件,它与Looper和MessageQueue紧密配合,使得线程间通信变得简单高效。 1. Handler的作用: Handler主要用于在不同...

    android Handler的使用(一)

    在Android开发中,`Handler`是一个至关重要的组件,它用于处理线程间的通信,特别是主线程(UI线程)与工作线程之间的交互。本文将深入探讨`Handler`的使用,帮助开发者理解如何有效地利用这一机制来更新UI、管理...

    android handler学习文档(多个)

    在Android开发中,`Handler`是一个至关重要的组件,它与`Looper`和`MessageQueue`共同构成了Android的消息处理机制。本学习文档集包含了12个深入解析`Handler`的资料,旨在帮助开发者全面理解并熟练运用`Handler`来...

    Android线程操作 handler demo

    此时,Android提供了多种多线程解决方案,其中之一就是Handler机制。本篇将详细讲解如何在Android中使用Handler进行线程间通信。 Handler是Android中处理消息和回调的核心组件,它与Looper和Message紧密配合,实现...

    Android review handler的使用

    然而,需要注意的是,过度使用`Handler`可能导致内存泄漏,因为`Handler`与创建它的线程强关联。因此,当不再需要`Handler`时,应调用`removeCallbacksAndMessages(null)`来清理消息队列,防止内存泄漏。 总之,`...

    android 实例 Activity 之间通过 Handler 通信

    Handler是Android中的一个关键组件,它主要用于处理由Looper对象分发的消息(Message)。当在主线程(UI线程)中创建一个Handler实例时,这个Handler会与当前线程的Looper关联。通过post()或sendMessage()方法发送...

    Android高手进阶教程之AndroidHandler的使用.pdf

    值得注意的是,`Handler`的`sendXXXMessage()`方法(如`sendMessage()`、`sendEmptyMessage()`等)会将消息放入消息队列,然后由`Looper`循环处理这些消息。`Looper`是`Handler`的另一个关键部分,它通常在主线程中...

    android中的handler的使用方法

    在Android开发中,Handler是实现线程间通信的关键组件,尤其在处理UI更新时尤为重要。本文将深入探讨Android中的Handler机制及其使用方法。 首先,理解Handler的基本概念。Handler是Android消息处理系统的一部分,...

Global site tag (gtag.js) - Google Analytics