日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

如何在Android studio 中使用單例模式

瀏覽:17日期:2022-09-20 14:52:33

本篇簡(jiǎn)單介紹如何在Android studio中 使用單例模式和使用注意事項(xiàng)。

單例模式

為什么要使用單例模式?

有一些對(duì)象我們只需要一個(gè),只需要一個(gè)線程池 、緩存或是只有一臺(tái)打印機(jī)、機(jī)器人 、機(jī)器人上面只有一個(gè)尋磁傳感器。我們可以通過全局的靜態(tài)變量來實(shí)現(xiàn),但是全局變量在程序一開始就創(chuàng)建 可能比較耗費(fèi)資源、可能一直沒用到。單例模式和全局變量一樣方便又沒有它的缺點(diǎn)。

單利模式使用

public class Sensor { // 使用靜態(tài)變量記錄唯一的實(shí)例 private static Sensor sensorInstance; /** * 私有的構(gòu)造方法 */ private Sensor(){} /** * 實(shí)例化方法 * @return Sersor * synchronized包住不會(huì)有兩個(gè)線程同時(shí)進(jìn)入 */ public static synchronized Sensor getSersorInstance(){ if(sensorInstance == null) { sensorInstance = new Sensor(); } // 返回Sensor唯一實(shí)例 return sensorInstance; }}

但是如果想要很急切的創(chuàng)建示例,而且在示例創(chuàng)建方面的負(fù)擔(dān)不繁重。

public class Sensor { private static Sensor sensorInstance = new Sensor(); private Sensor(){} public static Sensor getSersorInstance(){ return sensorInstance; }}

如果有很多線程頻繁的使用getSersorInstance可能就影響性能,可以使用雙重檢查加鎖

public class Sensor { // volatile 保證 sensorInstance 被初始化 多個(gè)線程正確的處理 private volatile static Sensor sensorInstance; private Sensor(){} public static Sensor getSersorInstance(){ // 檢查 sensorInstance是否存在 如果不存在就進(jìn)入同步區(qū)塊if(sensorInstance == null) { // 同步區(qū)塊里面的代碼只有在第一次才會(huì)執(zhí)行 synchronized(Sensor.class) {if(sensorInstance == null) { sensorInstance = new Sensor();} } } return sensorInstance; }}Android 中使用內(nèi)存泄漏問題

1.在實(shí)例化的時(shí)候我們經(jīng)常需要傳入一些參數(shù) 比如說 Context

然后順利成章的

Sensor sensor = Sensor.getSersorInstance(MainActivity.this);

然后出現(xiàn)了一個(gè)很嚴(yán)重的問題Sensor單例持有了MainActivity 的this對(duì)象,所以當(dāng)我們轉(zhuǎn)跳其他Activity頁面的時(shí)候MainActivity 的對(duì)象仍然得不到釋放不能被回收。

所以我們應(yīng)該使用Application中的 context

2.同樣在急切的方法中

public class Sensor { public static final Sensor SENSOR_INSTANCE = new Sensor(); private List<MyListener> mListenerList; private Sensor() { mListenerList = new ArrayList<MyListener>(); } public static Sensor getInstance() { return SENSOR_INSTANCE; } public void registerListener(MyListener listener) { if (!mListenerList.contains(listener)) {mListenerList.add(listener); } } public void unregisterListener(MyListener listener) { mListenerList.remove(listener); } } interface MyListener { public void onSomeThingHappen(); }

MainActivity:

public class MainActivity extends Activity { private MyListener mMyListener=new MyListener() { @Override public void onSomeThingHappen() { } }; private Sensor sensor = Sensor.getInstance(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sensor.registerListener(mMyListener); }}

非靜態(tài)的內(nèi)部類(Sensor)的對(duì)象(mListenerList)都是會(huì)持有指向外部類對(duì)象(mMyListener)的引用。因此外部類對(duì)象(mMyListener)被持有了 同樣的不會(huì)被回收,內(nèi)存泄漏,所以需要

@Override protected void onDestroy() { Sensor.unregisterListener(mMyListener); super.onDestroy(); }

以上就是如何在Android studio 中使用單例模式的詳細(xì)內(nèi)容,更多關(guān)于在Android studio 中使用單例模式的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产免费播放一区二区| 欧美aaaaaa午夜精品| 日本欧美不卡| 久久久久免费av| 亚洲精品97| 视频一区欧美日韩| 日韩国产在线一| 国产精品xxx| 日本不良网站在线观看| 蜜臀av免费一区二区三区| 国产农村妇女精品一二区| 蜜桃视频在线观看一区| 国产精品久久乐| 国产成人久久| 一区免费在线| 日韩国产欧美视频| 国产精品成人国产| 天堂av在线| 夜夜嗨网站十八久久| 欧美一级二区| 久久久精品久久久久久96 | 久久99久久久精品欧美| 91日韩在线| 激情婷婷久久| 日本免费新一区视频| 高潮一区二区| 亚洲三级观看| 麻豆国产精品777777在线| 欧美一级精品| 国产欧美日韩视频在线| 蜜桃视频在线网站| 日本不卡视频在线| 99久久九九| 国产精品一区二区精品| 999在线观看精品免费不卡网站| 国产九九精品| 在线亚洲观看| 精品视频一区二区三区四区五区 | 欧美国产美女| 日韩在线一二三区| 欧产日产国产精品视频| 欧美日韩1区| 久久精品国产68国产精品亚洲| 婷婷精品在线| 欧美一区三区| 美女视频网站久久| 蜜桃久久av| 91tv亚洲精品香蕉国产一区| 日本不卡一区二区| 好吊日精品视频| 国产专区精品| 91大神在线观看线路一区| 91精品久久久久久久久久不卡| 日韩欧美中文字幕一区二区三区| 99久久久久| 国产+成+人+亚洲欧洲在线| 日本不卡中文字幕| 欧美粗暴jizz性欧美20| 成人亚洲精品| 国产精品一站二站| 自拍自偷一区二区三区| 久久久久网站| 成人在线丰满少妇av| 久久激五月天综合精品| 久久xxxx| 午夜国产一区二区| 久久精品国产68国产精品亚洲| 精品一区二区三区中文字幕| 蜜桃av一区二区三区电影| 国产一区二区三区自拍| 国产一区二区三区黄网站| 国产精品亚洲四区在线观看 | 亚洲电影在线一区二区三区| 福利一区和二区| 国产精品久久乐| 久久精品99国产精品日本| 亚州av日韩av| 免费美女久久99| 亚洲免费网址| 首页国产欧美日韩丝袜| 国产一区清纯| 日本欧美不卡| 亚洲性视频h| 亚洲一区成人| 亚洲tv在线| 欧美激情三区| 福利视频一区| 日本午夜精品| 日韩另类视频| 国产麻豆一区| 欧美一区91| 日韩福利视频网| 日韩国产高清在线| 日本视频中文字幕一区二区三区| 最新国产精品| 日韩国产在线一| 亚洲不卡视频| 日韩成人精品一区二区三区| 亚洲综合专区| 日本免费新一区视频| 欧美久久亚洲| 国产精品久久久久久久免费软件| 国产欧美日韩影院| 久久精品国产亚洲aⅴ| 精品不卡一区| 久久精品影视| 丝袜美腿亚洲色图| 日韩二区三区在线观看| 国产精品久久国产愉拍| 精品国产精品久久一区免费式| 国产在线观看www| 日韩精品首页| 亚洲欧美日韩精品一区二区| 日韩欧美另类中文字幕| 欧美黑人做爰爽爽爽| 日韩深夜视频| 亚洲男女自偷自拍| 国产免费av国片精品草莓男男| 欧美极品中文字幕| 三级小说欧洲区亚洲区| 免费看的黄色欧美网站| 日韩av电影一区| 福利精品在线| 国产亚洲综合精品| 国产精品欧美在线观看| 极品av在线| 自拍日韩欧美| 91精品视频一区二区| 麻豆视频在线看| 日韩精品一二三| 精品视频国内| 先锋影音久久久| 国产精品tv| 国产一区二区中文| 日本不卡一二三区黄网| 成人国产精选| 巨乳诱惑日韩免费av| 国产精品久久久亚洲一区| 久久精品国内一区二区三区水蜜桃| 中文字幕一区二区精品区| 九九九精品视频| 午夜久久影院| 美女在线视频一区| 一区三区视频| 国产精久久久| 亚洲激情不卡| 久久只有精品| 亚洲精品小说| 欧美激情在线精品一区二区三区| 在线日韩欧美| 国产精品久久久久久妇女| 欧美日韩国产在线一区| 精品国产一区二区三区噜噜噜| 黄色免费成人| 福利视频一区| 日韩av中文在线观看| 精品国内亚洲2022精品成人| 悠悠资源网久久精品| 成人亚洲一区二区| 日韩成人午夜精品| 国产综合亚洲精品一区二| 欧美精品国产一区| 蜜桃视频第一区免费观看| 精品日韩视频| 欧美国产极品| 日本不卡高清| 欧美在线资源| 在线看片国产福利你懂的| 免费成人在线影院| 国精品一区二区| 久久久久久久欧美精品| 久久激情五月婷婷| 中日韩男男gay无套| 国产精品videossex| 激情婷婷久久| 精品一区不卡| 日韩福利视频一区| 国产精品毛片一区二区三区| 麻豆视频在线看| 欧美亚洲福利| 另类国产ts人妖高潮视频| av综合电影网站| 国产一区一一区高清不卡| 日韩一区二区三免费高清在线观看| 欧美一区二区三区高清视频| 老司机精品在线| 91成人福利| 天堂va在线高清一区| 亚洲欧美伊人| 日本а中文在线天堂| 国产精品久久久免费| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产毛片精品| 日韩一区二区三区精品视频第3页| 欧美搞黄网站| 91精品国产成人观看| 国产精品久久久久蜜臀| 久久精品国产久精国产爱| 国产精品对白| 国产精品传媒麻豆hd|