项目演示及讲解

爱奇艺 http://www.iqiyi.com/w_19rtfb03pp.html

土豆http://www.tudou.com/programs/view/M1R6cIW15DY/

项目下载

http://download.csdn.net/detail/u010134178/9052163

什么是单例模式

百度“java 单例”

以下是通过一个简单的列子来说明它的用户,别看这简单的例子,在公司项目里这可是最基本的呀

1、一个图片池类

publicclassImagePool{privatestaticContextmContext;privatestaticBitmapmBitmap;privatestaticImagePoolmInstance;publicImagePool(Contextcontext){mContext=context;mBitmap=BitmapFactory.decodeStream(context.getResources().openRawResource(R.drawable.zheng));}publicstaticImagePoolgetInstance(Contextcontext){if(null==mInstance){mInstance=newImagePool(context);}returnmInstance;}publicstaticImagePoolgetInstance(){returnmInstance;}/***外部数据接口**@return*/publicBitmapgetBitmap(){returnmBitmap;}/***设置**@return*/publicvoidsetBitmap(intid){mBitmap=BitmapFactory.decodeStream(mContext.getResources().openRawResource(id));}}

一个Applaction层的全局变量

publicclassMyApplicationextendsApplication{@OverridepublicvoidonCreate(){super.onCreate();//initImagePool.getInstance(getApplicationContext());}}

在业务中的基本用法

publicclassMainActivityextendsActivity{@OverrideprotectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);finalImageViewp_w_picpath=(ImageView)findViewById(R.id.p_w_picpathId);Buttonchange=(Button)findViewById(R.id.changeId);Buttonstart=(Button)findViewById(R.id.startId);Drawabledrawable=newBitmapDrawable(ImagePool.getInstance().getBitmap());p_w_picpath.setBackgroundDrawable(drawable);change.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){ImagePool.getInstance().setBitmap(R.drawable.chuan);Drawabledrawable=newBitmapDrawable(ImagePool.getInstance().getBitmap());p_w_picpath.setBackgroundDrawable(drawable);}});start.setOnClickListener(newOnClickListener(){@OverridepublicvoidonClick(Viewv){Intentintent=newIntent(MainActivity.this,OtherActivity.class);startActivity(intent);}});}}

好了,其实就这么简单。