ããContextå¯è½æ¯Androidåºç¨ä¸æ常ç¨çå
ç´ ï¼èå®ä¹å¯è½æ¯æ容æ误ç¨çã
ããContext对象æ¯å¦æ¤å¸¸è§åä¼ é使ç¨ï¼å®å¯è½ä¼å¾å®¹æ产ç并ä¸æ¯ä½ é¢æçæ
å½¢ãå è½½èµæºãå¯å¨ä¸ä¸ªæ°çActivityãè·åç³»ç»æå¡ãè·åå
é¨æ件路å¾ä»¥åå建viewï¼å
¶å®è¿è¿ä¸æ¢è¿äºï¼ç»ç»é½éè¦Context对象æ¥å®æãæ(åæä½è
)æ³åçåªæ¯ç»å¤§å®¶æä¾ä¸äºContextæ¯å¦ä½å·¥ä½çè§è§£ï¼ä»¥å让大家å¨åºç¨ä¸æ´ææç使ç¨Contextçæå·§ã
ããContextçç±»å
ãã并ä¸æ¯ææçcontextå®ä¾é½æ¯çä»·çãæ ¹æ®Androidåºç¨çç»ä»¶ä¸åï¼ä½ 访é®çcontextæ¨åæäºç»å¾®çå·®å«ã
ããApplication ï¼ æ¯ä¸ä¸ªè¿è¡å¨ä½ çåºç¨è¿ç¨ä¸çåä¾ãå¨Activityæè
Serviceä¸ï¼å®å¯ä»¥éè¿getApplication()å½æ°è·å¾ï¼æè
人å继æ¿äºcontextç对象ä¸ï¼éè¿getApplicationContext()æ¹æ³è·å¾ãä¸ç®¡ä½ æ¯éè¿ä½ç§æ¹æ³å¨åªéè·å¾çï¼å¨ä¸ä¸ªè¿ç¨å
ï¼ä½ æ»æ¯è·å¾å°åä¸ä¸ªå®ä¾ã
ããActivity/Service ï¼ ç»§æ¿äºContextWrapperï¼å®å®ç°äºä¸contextåæ ·APIï¼ä½æ¯ä»£çè¿äºæ¹æ³è°ç¨å°å
é¨éèçContextå®ä¾ï¼å³æ们æç¥éçåºç¡contextãä»»ä½æ¶åå½ç³»ç»å建ä¸ä¸ªæ°çActivityæè
Serviceå®ä¾çæ¶åï¼å®ä¹å建ä¸ä¸ªæ°çContextImplå®ä¾æ¥åææçç¹éçå·¥ä½ãæ¯ä¸ä¸ªActivityåService以åå
¶å¯¹åºçåºç¡contextï¼å¯¹æ¯ä¸ªå®ä¾æ¥è¯´é½æ¯å¯ä¸çã
ããBroadcastReciver ï¼ å®æ¬èº«ä¸æ¯contextï¼ä¹æ²¡æcontextå¨å®éé¢ï¼ä½æ¯æ¯å½ä¸ä¸ªæ°ç广æå°è¾¾çæ¶åï¼æ¡æ¶é½ä¼ éä¸ä¸ªcontext对象å°onReceive()ãè¿ä¸ªcontextæ¯ä¸ä¸ªReceiverRestrictedContextå®ä¾ï¼å®æ两个主è¦å½æ°è¢«ç¦æï¼registerReceiver()åbindService()ãè¿ä¸¤ä¸ªå½æ°å¨BroadcastReceiver.onReceive()ä¸å
许è°ç¨ãæ¯æ¬¡Receiverå¤çä¸ä¸ªå¹¿æï¼ä¼ éè¿æ¥çcontexté½æ¯ä¸ä¸ªæ°çå®ä¾ã
ããContentProvider ï¼ å®æ¬èº«ä¹ä¸æ¯ä¸ä¸ªContextï¼ä½æ¯å®å¯ä»¥éè¿getContext()å½æ°ç»ä½ ä¸ä¸ªContext对象ãå¦æContentProvideræ¯å¨è°ç¨è
ççæ¬å°ï¼ä¾å¦ï¼å¨åä¸ä¸ªåºç¨è¿ç¨ï¼ï¼getContext()å°è¿åçæ¯Applicationåä¾ãç¶èï¼å¦æè°ç¨è¿åContentProviderå¨ä¸åçè¿ç¨çæ¶åï¼å®å°è¿åä¸ä¸ªæ°å建çå®ä¾ä»£è¡¨è¿ä¸ªProvideræè¿è¡çå
ã
ããä¿åå¼ç¨
ãã第ä¸ä¸ªæ们éè¦è§£å³é®é¢æ¯ï¼å¨ä¸ä¸ªå¯¹è±¡æè
ç±»å
é¨ä¿åä¸ä¸ªcontextå¼ç¨ï¼èå®çå½å¨æå´è¶
è¿å
¶ä¿åå¼ç¨ç对象ççå½å¨æãä¾å¦ï¼å建ä¸ä¸ªèªå®ä¹çåä¾ï¼å®éè¦ä¸ä¸ªcontextæ¥å è½½èµæºæè
è·åContentProviderï¼ä»èä¿åä¸ä¸ªæåå½åActiviyæè
Serviceçå¼ç¨å¨åä¾ä¸ã
温馨提示:答案为网友推荐,仅供参考