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