温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

单例模式在android中的应用

发布时间:2020-07-29 08:56:05 来源:网络 阅读:682 作者:郑传余 栏目:移动开发

项目演示及讲解 

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

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

项目下载

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

什么是单例模式

百度“java 单例”

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

1、一个图片池类

public class ImagePool {

	private static Context mContext;

	private static Bitmap mBitmap;

	private static ImagePool mInstance;

	public ImagePool(Context context) {
		mContext = context;
		mBitmap = BitmapFactory.decodeStream(context.getResources()
				.openRawResource(R.drawable.zheng));
	}

	public static ImagePool getInstance(Context context) {
		if (null == mInstance) {
			mInstance = new ImagePool(context);
		}
		return mInstance;
	}

	public static ImagePool getInstance() {
		return mInstance;
	}

	/**
	 * 外部数据接口
	 * 
	 * @return
	 */
	public Bitmap getBitmap() {
		return mBitmap;
	}

	/**
	 * 设置
	 * 
	 * @return
	 */
	public void setBitmap(int id) {
		mBitmap = BitmapFactory.decodeStream(mContext.getResources()
				.openRawResource(id));
	}

}

一个Applaction层的全局变量

public class MyApplication extends Application{

	@Override
	public void onCreate() {
		super.onCreate();
		//init
		ImagePool.getInstance(getApplicationContext());
	}

}

在业务中的基本用法

public class MainActivity extends Activity {  
  
    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
  
        final ImageView p_w_picpath = (ImageView) findViewById(R.id.p_w_picpathId);  
        Button change = (Button) findViewById(R.id.changeId);  
        Button start = (Button) findViewById(R.id.startId);  
  
        Drawable drawable = new BitmapDrawable(ImagePool.getInstance()  
                .getBitmap());  
        p_w_picpath.setBackgroundDrawable(drawable);  
  
        change.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                ImagePool.getInstance().setBitmap(R.drawable.chuan);  
                Drawable drawable = new BitmapDrawable(ImagePool.getInstance()  
                        .getBitmap());  
                p_w_picpath.setBackgroundDrawable(drawable);  
            }  
        });  
  
        start.setOnClickListener(new OnClickListener() {  
            @Override  
            public void onClick(View v) {  
                Intent intent = new Intent(MainActivity.this,  
                        OtherActivity.class);  
                startActivity(intent);  
            }  
        });  
  
    }  
  
}

好了,其实就这么简单。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI