十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
【一】Context的作用:訪問(wèn)全局信息
十年的臨海網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整臨海建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“臨海網(wǎng)站設(shè)計(jì)”,“臨海網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
Context是訪問(wèn)全局信息的接口,比如說(shuō)應(yīng)用程序的資源(圖片資源、字符串資源、其他資源...),
所以一些常用組件就會(huì)繼承Context,目的就是為了訪問(wèn)資源,比如說(shuō)Activity以及將要學(xué)習(xí)的Service。
創(chuàng)建項(xiàng)目來(lái)看下如何通過(guò)Context進(jìn)行資源的訪問(wèn)。
public class MainActivity extends Activity{ private TextView tv; @Override protected void onCreate(Bundle saveInstanceState){ super.onCreate(saveInstanceState); tv = new TextView(this); // 這里傳入?yún)?shù)必須有一個(gè)Context,因?yàn)檫@個(gè)TextView也需要訪問(wèn)一些資源、全局信息 // Activity也是Context的子類,所以可以傳入this tv.setText("HelloAndroid"); //也可通過(guò) R.id.hello_world 訪問(wèn)string.xml中的字符串資源 setContentView(tv); } }
通過(guò)查看setText()方法的源碼:
setText(int resid){setText(getContext().getResources().getText(resid));}
首先通過(guò)getContext()獲取與它相關(guān)的Context對(duì)象,
也就是TextView所保留引用(傳入的那個(gè)參數(shù))的Context對(duì)象,
也就是MainActivity的實(shí)例;
然后通過(guò)getResources()獲取當(dāng)前程序的資源實(shí)例,
再通過(guò)getText(),給它一個(gè)id就可以返回資源的字符串了。
這就是這個(gè)方法的內(nèi)部實(shí)現(xiàn)。
也就是Android中,如果想訪問(wèn)全局信息,必須通過(guò)Context。
除了可以獲取字符串,還能獲取其它資源,例如圖片:
ImageView iv = new ImageView(); iv.setImageResource(R.mimap.ic_launcher); setContentView(iv);
【二】Application的用途
很多情況下,我們需要在多個(gè)組件之間進(jìn)行數(shù)據(jù)的共享,Android為我們提供了一種機(jī)制。
Context可以作為全局信息共享的橋梁,所以我們可以用Context進(jìn)行信息的共享。
我們可以創(chuàng)建一個(gè)類,叫做App,繼承于Application。
public class App extends Application{ }
然后打開AndroidManifest.xml文件,
添加斜體字中的信息,
通過(guò)這種方式,我們就自定義了Android的Application ,
而Application才是真正的全局上下文對(duì)象。
在MainActivity中可以通過(guò)getApplicationContext()方法,
就可以獲得Application全局對(duì)象。