1. 程式人生 > >Android Context理解/在一個應用中程式中有多少個context例項?

Android Context理解/在一個應用中程式中有多少個context例項?

在一個應用中程式中有多少個context例項?
什麼時候建立Context例項?

一、什麼是Context?
上下文環境、語境

官方文件綜述
Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.
以上可以翻譯成三點:
1)它描述的是一個應用程式環境的資訊,即所謂的上下文了
2)該類是一個抽象類(abstract class),Android提供了該類的具體實現類(ContextIml)
3)通過它我們可以獲取應用程式的資源和類,也包括一些應用級別的操作,例如啟動一個Activity,傳送廣播,接受intent等。
這裡寫圖片描述


看一下類結構關係Context有三個子類 Application Activity Service 因此回到最開始的問題
一個應用中的Context例項一般有Application(只有1個)+ Activity(假設10個)+ Service(假設5個)=16

什麼時候建立Context例項?
1)
建立Application物件時(整個App只有一個Application物件)
2)建立Activity時
3)建立service時

忘記看過誰的了。。。

相關推薦

Android Context理解/在一個應用程式多少context例項

在一個應用中程式中有多少個context例項? 什麼時候建立Context例項? 一、什麼是Context? 上下文環境、語境 官方文件綜述 Interface to global information about an application en

Android 呼叫另一個應用(app)的Activity

在同一個應用中,大家都熟悉用Intent在Activity之間跳轉。那麼Intent能否再兩個應用之間跳轉呢。答案是肯定的。 在Android2.0 後的做如下: app1 org.freedom.app1.HelloActivity app2 org.freedom.ap

android如何從一個應用跳轉到另一個頁面

眾所周知,在一個APP內部,從一個頁面跳轉到另外一個頁面是使用startactivity函式來實現的。 同樣的,對於應用之間的跳轉也是如此的。應用直接的跳轉分為三種情況,為了方便描述,我加上有兩個應用A和B,需求是要從A點選一個按鈕,可以跳轉到B,同時A要傳資料給B,B能夠

關於敏捷開發,一個菜鳥程式話說

關於敏捷開發,一個菜鳥程式猿有話說   離開學校,已經三年時間了,要說成功遠遠談不上,勉強算的上一個合格的程式設計師,因為十分熱愛IT行業,所以很想把工作三年來的一些工作心得與大家分享,希望對剛出道的小夥伴們有所幫助。 初入上海,看上的是機會多,卻忽略了高消費,房租一個月300

一個正常人變成程式猿兩多月的規劃

                        首先  不多說啥  今天剛剛在戴爾軟體技術部辭職  心情格外好 由衷的感覺 因為我知道自己不適合售後服

ASP.NET MVC4@model使用多型別例項的方法

有時需要在ASP.NET MVC4的檢視的@model中使用多個型別的例項,.NET Framework 4.0版本引入的System.Tuple類可以輕鬆滿足這個需求。         假設Person和Product是兩個型別,如下是控制器程式碼。\ using

css3的旋轉需要注意的點

一般來說,如果要將元素居中,可能會採取以下方式: .box{ width:300px; height:300px; position:absolute; left:50%; top:50%; margin-l

android studio在一個資料夾下建立多module(libraray)

每次開發專案都會引入一些第三方支援庫,而在android studio下它們都是作為module的形式存在一個專案中,太多的話難免看起來很亂,所以萌生了把他們放在同一個資料夾下的想法,也就是

發現一臺機器同時執行多Oracle例項時。。。

發現一臺機器中同時執行多個Oracle例項時,最好保證 [OracleHome]/network/admin/listener.ora 檔案的 SID_LIST_LISTENER 段中 要對應每個例項都有一段宣告 其實這是個很簡單的問題,呵呵,只是偶以前一直沒留意過,今天剛剛

Android一個應用程式的Activity跳轉到另一個Activity

   一個應用程式中的一個Activity想啟動另一個Activity,通常用intent(Context,Class)方法定義intent,這次利用intent_filter的做法來啟動。 程式碼如下: Activity1中的button設定監聽器,跳轉到Activity

Windows 一個應用程式的啟動過程

轉載自:https://blog.csdn.net/cpp_mybest/article/details/80194158 1. Explorer.exe      Windows 能夠流行起來,很大一個原因是它有友好的使用者圖形介面,操作方便簡單,容易上手。在

VC怎麼執行一個應用程式,並取得應用程式的返回值

我沒有想到怎樣去檢查掛掉的程式,在實際應用中我是採用估算一個最大執行時間,如果超過此時間,即強行終止程式。因為要取得子程序執行結束的返回值,所以要用上面的方法。如果不要求取得返回值,把:ShellExecuteEx(&ShExecInfo);以下的程式碼去掉就是了,主程序依然可以繼續下向執行。如果不考

如何實現在一個 Socket 應用程式同時支援 IPv4 和 IPv6

簡介: 當今的網路主流是 IPv4 網路,但隨著 IP 地址的日益短缺,IPv6 網路開始漸漸盛行,因此傳統的網路程式設計也需要做一些改進來適應 IPv6 和 IPv4 共存的網路環境。 本文介紹了一種設計模式來根據使用者輸入的地址或者域名建立合適的網路連線,並且遮蔽了網路連線細節,提供給使用者一個統

程式讀取ANDROID應用程式名稱和版本號

在ANDROID應用中,我們經常會需要在應用的介紹和說明中顯示程式名稱和版本號。當然,我們可以用硬編碼的方式在程式碼中直接寫進去,但這樣每一次版本升級的時候都需要去更改,勢必不是很方便。那麼,怎麼讀取ANDROID應用的程式名稱和版本號呢? 其實很簡單,ANDROID系統

Android一個應用如何啟動另外一個已安裝的應用

在自己的應用開發過程中,有可能需要在自己的應用中啟動其他應用,此時,如果應用對外公開了自己的啟動Intent方式,可以直接建立該Intent,然後通過startActivity(myIntent)。 這種方式相信都很熟悉。 如果不知道想要啟動的應用的Intent,也有

android一個應用啟動另一個應用

在程式開發過程當中,常遇到需要啟動另一個應用程式的情況,比如在點選軟體的一個按鈕可以開啟地圖軟體。 如果既有包名又有主類的名字,那就好 辦了, 直接像下面就行: [html]  Intent intent = new Intent(Intent.ACTION_MAIN

Mac OS X下從服務程序啟動另一個應用程式(Cocoa Application)

- (void) launchAppliction: (NSString*) appPath{ //appPath指向可執行檔案的絕對地址 NSTask *softTask = [[NSTask alloc]init]; [softTask setLaunchPath:appPath]; [softTask

Android一個應用跳轉到另外一個應用的問題

有時候一個應用不可能做到盡善盡美,有很多功能我們可以藉助一些已經比較成熟的應用來實現 比如音樂視訊播放器  當需要的時候我們就可以跳轉到這些應用中 //獲取launcher中的應用列表 In

android應用如何在需要時申請root許可權?在程式要呼叫哪些語句來實現?

測試的手機已經root,並且裝有授權管理,允許應用來申請root許可權。但是要怎麼在程式裡寫程式碼來觸發申請?我試過用:Runtime runtime = Runtime.getRuntime();Process proc = runtime.exec("su");是會彈出一個對話方塊問你是否允許申請root