


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
【移動應用開發(fā)技術】Android中怎么實現(xiàn)單例模式
這期內容當中在下將會給大家?guī)碛嘘PAndroid中怎么實現(xiàn)單例模式,文章內容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。1.意圖保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。熱門詞匯:單例
***私有構造2.結構android中有很多系統(tǒng)級別的全局變量,如時間,輸入法,賬戶,狀態(tài)欄等等,android中對這些都直接或者有些間接用到了單例模式。以輸入法為例,把上圖修改為實際情況:非常的簡單,但是有一點,從上面我們也看到了synchronized關鍵字,在多線程的環(huán)境下,單例模式為了保證自己實例數(shù)量的***,必然會做并發(fā)控制。類似這種線程安全的單例,跨進程的單例,參數(shù)化的單例等等的情況,確實超出本文的范圍,而且都涉及到很多東西,是一個很大的話題,不好展開。3.代碼:public
final
class
InputMethodManager
{
static
final
Object
mInstanceSync
=
new
Object();//同步
//內部全局***實例
static
InputMethodManager
mInstance;
//對外api
static
public
InputMethodManager
getInstance(Context
context)
{
return
getInstance(context.getMainLooper());
}
/**
*
內部api,供上面的外部api調用
*
@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;
}
}客戶端調用,比如contextimpl中的getSystemService()方法中如下調用: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))
{
//獲取輸入法管理者***實例
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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 IEC 62148-11:2024 EN-FR Fibre optic active components and devices - Package and interface standards - Part 11: 14-pin modulator integrated laser diode modules and pump laser
- 【正版授權】 ISO 18935:2025 EN Imaging materials - Colour images - Determination of water resistance of printed colour images
- 2025年建筑安全員知識題庫及答案
- 2025-2030年中國采血器市場發(fā)展狀況及前景趨勢分析報告
- 2025-2030年中國薯片市場運行態(tài)勢與投資戰(zhàn)略研究報告
- 2025-2030年中國營養(yǎng)碘鹽市場發(fā)展狀況及營銷戰(zhàn)略研究報告
- 2025-2030年中國自動光學檢測儀(AOI)市場運營狀況及前景趨勢分析報告
- 2025-2030年中國絕熱隔音材料產業(yè)運行狀況與投資策略研究報告
- 2025-2030年中國電解金屬錳行業(yè)前景展望規(guī)劃研究報告
- 2025-2030年中國電站設備行業(yè)運行態(tài)勢及發(fā)展趨勢分析報告
- 中糧五常筒倉工程施工組織設計方案
- 汽車尾氣污染與治理汽車尾氣污染課件
- AIGC及ChatGPT保險行業(yè)應用白皮書
- 新人教版五年級下冊數(shù)學(新插圖) 練習二 教學課件
- 磚數(shù)量自動計算、換算表
- 【課題】《中學道德與法治法治意識培養(yǎng)策略的研究》中期檢查表
- 《十萬個為什么》推進課(小學課件)
- 發(fā)展?jié)h語初級綜合1:第28課《長城有八千八百五十多公里》
- YY/T 1619-2018牙科學種植體系統(tǒng)及相關過程的術語
- GB/T 18838.1-2002涂覆涂料前鋼材表面處理噴射清理用金屬磨料的技術要求導則和分類
- GA/T 1162-2014法醫(yī)生物檢材的提取、保存、送檢規(guī)范
評論
0/150
提交評論