`
yangwei0915
  • 浏览: 465188 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Android的开发规范整理之Handler的使用

 
阅读更多

1.关于Handler的使用,在Activity或者Service中使用Handler,通常会使用匿名内部类的方式来定义handler,但是这种方式,开发工具会报出This Handler class should be static or leaks might occur 。意思是,Handler类应该定义为static的,否则会造成内存泄漏。推荐使用如下的代码解决这个问题:

private static class UIHandler extends Handler{    
    WeakReference<AddCheckTeskActivity> mActivity;

    private UIHandler(AddCheckTeskActivity activity) {
        mActivity = new WeakReference<AddCheckTeskActivity>(activity);
    }
    @Override
public void handleMessage(Message msg) {
        super.handleMessage(msg);
        AddCheckTeskActivity act=mActivity.get();
        //调用所在activity的实例方法
act.generateLawDialog();
        //调用所在activity的实例变量的方法
act.lawDialog.show();
        DialogUtils.closeDialog();
    }
}

  

 

 在Handler中把对Activity的引用定义为WeakReference的,WeakReference表示在垃圾回收器线程扫描它所管辖的内存区域的过程中,一旦发现了只具有弱引用的对象,不管当前内存空间足够与否,都会回收它的内存,

 

 

 

2.子线程中使用Handler的方式:

 

定义子线程的Callback类:

 

class ChildCallback implements Handler.Callback {
    @Override
    public boolean handleMessage(Message msg) {
        //耗时的代码        
        return false;
    }
}

 

 主线程中定义HandlerThread ,并且启动线程

 

 HandlerThread handlerThread = new HandlerThread("downloadImage");
        //必须先开启线程
        handlerThread.start();

 在需要的使用ChildCallback创建Handler,并且发送消息:

childHandler = new Handler(handlerThread.getLooper(),new ChildCallback());
childHandler.sendEmptyMessage(0);

 

 

 

 

分享到:
评论

相关推荐

    Android开发规范

    根据提供的文件内容,以下是关于《Android开发规范》的详细知识点整理: 【Android开发规范概述】 《Android开发规范》是一份针对Android平台上的开发活动制定的代码规范文档,旨在帮助开发人员编写高效、规范的...

    Android开发基础教程整理版

    【Android开发基础教程整理版】 Android开发是移动应用开发领域中的一个重要组成部分,它基于Linux内核,由Google主导并开放源代码。这个整理版的教程将带你深入理解Android开发的基础知识,助你成为一名合格的...

    Android最新版最全面试题+知识点整理

    在Android开发领域,...通过这份全面的试题和知识点整理,开发者可以系统地学习和复习Android开发的各个方面,提高自己的专业能力,为实际项目开发打下坚实基础。无论是初学者还是经验丰富的开发者,都可以从中受益。

    android中国象棋源代码整理.pdf

    在Android平台上开发一款中国象棋应用,涉及到的关键技术主要包括用户界面(UI)的设计、多媒体处理、消息传递以及视图的切换等。以下是对`ChessActivity`类中主要代码段的详细解读: 1. **Activity与生命周期**: ...

    android面试宝典

    通过这些知识点的学习和实践,你将能够全面地掌握Android开发的核心技能,自信地应对面试中的各类问题。《Android面试题集锦》、《整理的最全面的android面试题》等文档将为你提供丰富的实战题目和详细解答,帮助你...

    Android高手过招 FAQ.zip

    尽管没有具体的标签,我们可以根据文件名推测这是一份关于Android开发的知识整理。 这份资料可能涵盖了以下几个重要的Android开发知识点: 1. **Activity生命周期**:Android应用中的Activity是用户界面的主要组件...

    深入理解Android:卷I--详细书签版

     邓凡平,资深Android开发工程师,热衷于Android源代码的研究,对Android的架构设计和实现原理有非常深刻的认识和理解,应用开发经验也十分丰富。目前就职于国内一家领先的 Android企业,负责Framework的开发和...

    android应用源码精开源中国最新客户端源码.zip

    这个标题表明我们有机会深入研究一个实际运行在Android设备上的应用是如何设计和实现的,特别是对于那些对Android开发感兴趣或希望学习Android应用开发的人员来说,这是一个宝贵的资源。 【描述解析】 描述部分与...

    Android 在线音乐播放器完整项目.zip

    【Android 在线音乐播放器完整项目】是一个专为Android平台设计的全面的音乐播放应用程序源码,它提供了丰富的功能,让...同时,对于希望开发自己的音乐播放应用或者提升Android开发技能的人来说,这是一个宝贵的资源。

    Android 面试前充电,BAT大牛讲解视频。

    - **Java**:面向对象编程语言,是Android开发的传统语言。 - **Kotlin**:一种现代、简洁且功能强大的静态类型语言,被Google官方推荐为首选开发语言。 #### 1.2 Android SDK - **SDK概述**:Software Development...

    android面试题.txt

    根据提供的文件信息,我们可以整理出一系列与Android开发相关的面试题及关键知识点,下面将逐一进行详细解析。 ### 1. Activity生命周期 - **定义:** Activity是Android四大组件之一,代表了一个屏幕界面,用户...

    android-skills:整理,记录Android知识经验

    在Android开发领域,掌握丰富的知识和技能是至关重要的。"android-skills"项目是一个精心整理的资源库,旨在帮助开发者系统地学习和巩固Android技术。这个项目按照不同的知识类别进行了组织,确保每个部分都能深入...

    应用源码之weiciyuan-0.50.zip

    10. **最佳实践**:通过源码分析,学习Android开发的最佳实践,如代码规范、性能优化、内存管理等。 总的来说,"应用源码之weiciyuan-0.50.zip"是一个宝贵的教育资源,无论是对于初学者还是经验丰富的开发者,都能...

    面试题集,包含Android、Java、数据结构、算法等.docx

    7. **Handler机制**:Handler、Looper和Message三者结合实现了Android的异步消息处理机制,用于在主线程中处理来自其他线程的消息。 8. **Binder机制**:Binder是Android系统中进程间通信的核心组件,它使得服务...

    Android 日常开发总结的60条技术经验

    在Android日常开发中,积累和遵循一些技术经验能够极大地提高开发效率和代码质量。以下是基于提供的信息...这些经验涵盖了Android开发中的常见问题和最佳实践,遵循它们可以帮助开发者写出更高效、更稳定的应用程序。

    NetPayClient用户手册.zip

    通过深入研究NetPayClient的源码,不仅可以提升个人的Android开发技能,还可以为毕业设计提供实践案例,理解实际项目中的设计模式和最佳实践。对于Android开发者来说,这是一个宝贵的参考资料。在学习过程中,应尊重...

    Google GPS轨迹记录软件 MyTracks源码整理

    源码会揭示如何使用Android的Handler、AsyncTask或者Thread/Runnable来管理后台任务。 7. **权限管理**:随着Android系统的更新,权限管理变得更为严格。源码中会展示如何在运行时请求和管理位置、存储等必要的权限...

    Android编程之杀毒的实现原理及具体实例

    在Android平台上实现杀毒软件,主要涉及以下几个关键技术点: 1. **病毒库的构建与更新**: 病毒库是杀毒软件的核心组成部分,...在实践中,还需要遵循Android的开发规范,并不断迭代更新以应对新型的恶意软件威胁。

Global site tag (gtag.js) - Google Analytics