• Android_Basic_01.关于单例对象的使用


    01. 关于全局单例对象/共享池类对象的应用

          在业务应用中,分更好达成分工协作,提升工作效率,减少沟通成本,有效实践MVC的精神,在项目开发过程中,可新增一个居间全局单元,用以提供一些全局类的单例应用成员,

          a. 自定义居间类的定义     

     1 public class DataModel {
     2     //单例成员
     3     private static DataModel model = new DataModel();
     4     //上下文对象
     5     private Context mContext;
     6     //线程池对象
     7     ExecutorService executorService = Executors.newCachedThreadPool();
     8 
     9     //私有化构造函数
    10     private DataModel() {}
    11 
    12     //对外提供单例对象获取
    13     public static DataModel getInstance() {
    14         return model;
    15     }
    16 
    17     //上下文传入
    18     public void init(Context context) {
    19         this.mContext = context;
    20     }
    21 
    22     //取线程池对象
    23     public ExecutorService threadPool(){
    24         return executorService;
    25     }
    26 }

          b. 定义Application扩展类,用以初始化单例对象等相关操作;         

    1 public class IMApplication extends Application {
    2     @Override
    3     public void onCreate() {
    4         super.onCreate();
    5         //数据模型居间对象.一次性初始化
    6         DataModel.getInstance().init(this);
    7     }
    8 }

          c.关于单例对象的使用

     1         DataModel.getInstance().threadPool().execute(new Runnable() {
     2             @Override
     3             public void run() {
     4 
     5                //为了简便,在线程任务中,直接发起界面UI的处理
     6                runOnUiThread(new Runnable() {
     7                    @Override
     8                    public void run() {
     9                        Toast.makeText(MainActivity.this,"处理完成",Toast.LENGTH_SHORT).show();
    10                    }
    11                });
    12 
    13             }
    14         });

        

          d.注意对扩展Application的配置处理     AndroidManifest.xml          

    1     <application
    2         android:name=".IMApplication"
    3         ......
    4     </application>

    02. 像数据库的通讯,网络请求,广播器对象等的管理,都可以进行全局单例管理,避免资源混乱;

             

  • 相关阅读:
    02_离线计算系统_第2天(HDFS详解)
    01_离线计算系统_第1天(HADOOP快速入门)
    01_离线计算系统_第1天(HADOOP快速入门)
    第4天 java高级特性增强 ---有用 第一遍
    038_字符串的转义
    037_标准化日期代码
    036_js中的字符串比较大小
    035_jQaury中的each()循环
    034_json对象字符串长什么样子?
    033_SpringMVC返回String,view,Object的原理
  • 原文地址:https://www.cnblogs.com/jieling/p/15311328.html
Copyright © 2020-2023  润新知