下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】Android中怎么實(shí)現(xiàn)單例模式
這期內(nèi)容當(dāng)中在下將會給大家?guī)碛嘘P(guān)Android中怎么實(shí)現(xiàn)單例模式,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。1.意圖保證一個類僅有一個實(shí)例,并提供一個訪問它的全局訪問點(diǎn)。熱門詞匯:單例
***私有構(gòu)造2.結(jié)構(gòu)android中有很多系統(tǒng)級別的全局變量,如時間,輸入法,賬戶,狀態(tài)欄等等,android中對這些都直接或者有些間接用到了單例模式。以輸入法為例,把上圖修改為實(shí)際情況:非常的簡單,但是有一點(diǎn),從上面我們也看到了synchronized關(guān)鍵字,在多線程的環(huán)境下,單例模式為了保證自己實(shí)例數(shù)量的***,必然會做并發(fā)控制。類似這種線程安全的單例,跨進(jìn)程的單例,參數(shù)化的單例等等的情況,確實(shí)超出本文的范圍,而且都涉及到很多東西,是一個很大的話題,不好展開。3.代碼:public
final
class
InputMethodManager
{
static
final
Object
mInstanceSync
=
new
Object();//同步
//內(nèi)部全局***實(shí)例
static
InputMethodManager
mInstance;
//對外api
static
public
InputMethodManager
getInstance(Context
context)
{
return
getInstance(context.getMainLooper());
}
/**
*
內(nèi)部api,供上面的外部api調(diào)用
*
@hide
系統(tǒng)隱藏的api
*/
static
public
InputMethodManager
getInstance(Looper
mainLooper)
{
synchronized
(mInstanceSync)
{
if
(mInstance
!=
null)
{
return
mInstance;
}
IBinder
b
=
ServiceManager.getService(Context.INPUT_METHOD_SERVICE);
IInputMethodManager
service
=
IInputMethodManager.Stub.asInterface(b);
mInstance
=
new
InputMethodManager(service,
mainLooper);
}
return
mInstance;
}
}客戶端調(diào)用,比如contextimpl中的getSystemService()方法中如下調(diào)用:class
ContextImpl
extends
Context{
@Override
public
Object
getSystemService(String
name)
{
if
(WINDOW_SERVICE.equals(name))
{
//...
...
省略下面n個if,else
if
}
else
if
(INPUT_METHOD_SERVICE.equals(name))
{
//獲取輸入法管理者***實(shí)例
return
InputMethodManager.getInstance(this);
}
else
if
(KEYGUARD_SERVICE.equals(name))
{
//...
...
省略下面n個if,else
if
}
else
if
(ACCESSIBILITY_SERVICE.equals(name))
{
//又見單例,無處不在
return
AccessibilityManager.getInstance(this);
}
else
if
(LOCATION_SERVICE.equals(name))
{
//...
...
省略下面n個if,else
if
}
else
if
(NFC_
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 貴州財(cái)經(jīng)職業(yè)學(xué)院《大學(xué)英語跨文化交際》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年上海市建筑安全員-B證(項(xiàng)目經(jīng)理)考試題庫
- 2025重慶建筑安全員-C證考試題庫
- 貴陽信息科技學(xué)院《證券投資學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年浙江建筑安全員《C證》考試題庫及答案
- 廣州幼兒師范高等??茖W(xué)?!渡锛夹g(shù)綜合性實(shí)驗(yàn)?zāi)K》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025廣東省安全員-A證考試題庫附答案
- 廣州新華學(xué)院《影視導(dǎo)演實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年天津建筑安全員考試題庫
- 2025年四川省安全員知識題庫附答案
- 醫(yī)學(xué)教程 常見急救藥品的作用與用途
- 公司解散清算的法律意見書、債權(quán)處理法律意見書
- 公路橋梁工程施工安全風(fēng)險(xiǎn)評估指南
- 2024-2030年全球及中國通過硅通孔(TSV)技術(shù)行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 2024年秋季學(xué)期新Join In劍橋版(三年級起)英語三年級上冊課件 Supplementary activities Unit 6
- 2024年新人教版道德與法治七年級上冊全冊教案(新版教材)
- 初中物理期末復(fù)習(xí)+專題5+綜合能力題+課件++人教版物理九年級全一冊
- 2024年國開電大 統(tǒng)計(jì)學(xué)原理 形成性考核冊答案
- Unit13 同步教學(xué)設(shè)計(jì)2023-2024學(xué)年人教版九年級英語全冊
- 合伙經(jīng)營合作社協(xié)議書
- 廊坊市區(qū)普通住宅區(qū)物業(yè)服務(wù)等級標(biāo)準(zhǔn)
評論
0/150
提交評論