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

         

上一篇:MySql Basic-day01


下一篇:std::string存储结构与字符串结束符