zoukankan      html  css  js  c++  java
  • 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. 像数据库的通讯,网络请求,广播器对象等的管理,都可以进行全局单例管理,避免资源混乱;

             

  • 相关阅读:
    接口和抽象的区别
    接口
    jquery Ajax提交表单数据
    SQL 检查 是否存在 表 临时表
    ASP.NET MVC 设置Area中 Controller 的方法 默认启动页
    json 序列化为数组
    C# Lamda中类似于SQL 中的 In 功能
    各种webservice调用地址
    ASP.NET获取客户端IP地址
    C#反射机制 Type类型
  • 原文地址:https://www.cnblogs.com/jieling/p/15311328.html
Copyright © 2011-2022 走看看