zoukankan      html  css  js  c++  java
  • Android 开发框架【转】

    本文转自:goodcandle http://www.cnblogs.com/goodcandle/archive/2012/10/16/2672057.html

    程序框架

    经过10多年的经历,认识到程序的框架对开发产品真的是起到举足轻重的作用。一个好的产品,如果有个好的程序框架,那真是事半功倍,可能开始所做的工作会比较多,很难看到令人激动的成果,但是相信我,绝对值得。一开始,我也是比较注重程序界面开发,很快就开发出界面来,而且着实比较激动,因为有东西出来了,但是后面的事情,真是令人发狂,想从头再来,太迟了,离计划的时间比较近了,时间不允许,只有硬着头皮往上打补丁,硬着交付第一个版本,第二个版本或者后面的版本,迟早是要重来的。所以在后面带领团队开发的时候,在开发前,都是要讨论程序框架,留出很大部分时间进行程序框架开发,及在开发中不断的改进。

    刚接触Android,不知道用什么程序框架,所以查了很多资料,一开始看到一个程序框架,感觉很不错,所以一开始就使用了下面这个程序框架。

    开始这个框架用的蛮爽,简单介绍一下,主UI线程如果要做一个比较长时间的任务,创建一个任务,发送到任务队列中去,后台的Service不断的从任务队列中去取任务,然后交给线程处理,线程处理完后,通过消息(Message)发送到Handler里处理,然后Handler的handleMessage函数里回调到UI主线程中去。

    此框架的缺点是比较麻烦。

    1)首先这里有个Observer模式,每个Activity都要实现一个接口,然后注册到后台服务中去,这样后台服务才能把处理的结果回调到主线程中。

    2) 每个事件都要组成一个任务,发送到任务队列。

    3)后台线程先要取任务,然后处理,然后通过消息切换到主线程,然后又回到到相应的Activity中,中间有个3次判断当前是什么任务。

    4)不能并非,任务只能一个接一个,虽然这个一般不会造成瓶颈。

    因为摇摇2选1应用比较简单,所以后来感觉只要使用线程和Handler,通过消息就能处理,然后就查资料,发现已经有比较多的文章描述了这种方法,只是没提出这是一个框架,但是对摇摇2选1,我感觉已经足够了。下面就是主代码,分布在每个Activity中:

    private void TaskThread() 
    
    {
    
    Thread taskThread = new Thread()
    
    {
    
    @Override public void run()
    
    {
    
    //做耗时的任务 
    
     Message msg = Message.obtain();
    
    msg.what = 1;
    
    uiCallback.sendMessage(msg);
    
    }
    
    };
    
    taskThread .start();
    
    }
    
    
    private Handler uiCallback = new Handler()
    
    {
    
    @Override public void handleMessage(Message msg) 
    
    {
    
    if(msg.what == 1)
    
    {
    
    //在主线程中处理结果 
    
    }
    
    }
    
    };
  • 相关阅读:
    有关HL7 的C# 源码
    EF中调整字段的顺序
    xml schema 中如何定义类似Map的结构
    js将时间转换为时间戳
    postman使用
    H5拖拽
    读取XML文件中获取特定值
    读取XML文件
    owin使用
    C#跨线程访问
  • 原文地址:https://www.cnblogs.com/nikyxxx/p/2727089.html
Copyright © 2011-2022 走看看