1. 程式人生 > >Android 奇思妙想之 new Activity()

Android 奇思妙想之 new Activity()

奇思妙想

    接觸Android 也有很久了,不知大家有沒有想過Activity可以new嗎?Android由java語言開發,Activity本質也是一個物件,new出來有什麼問題呢?最近一直在想這個問題!

看了一些解釋後才算明白,Android程式與java程式不一樣,隨隨便便打寫一個類,在main()方法裡面就能執行。Android是基於元件化設計的,元件的執行需要一套完整的Android的環境的,在這個環境下Activity,Service才能執行,而這些元件不能以new的方式建立例項,它需要相應的上下文環境,也就是我們Context。可以說Context是這些Android元件執行的一個核心類。

Context

Context是什麼,我們經常所說的上下文,我們可以理解為這個物件在程式中所處的一個環境,Context在我們獲取View,獲得系統服務,載入資源都要用到。

如果還覺得Context比較抽象,難以理解,我們可以打個比方:

    把一個Androidc程式看作是一部電影,Android的Activity,Service等四大元件可以看作是電影的4大主演(4個大明星,表演功底很強),他們是劇組(系統)開始就定好了的,不是隨隨便便在大街上拉個人(new 物件)就能勝任的。然後他們拍攝電影,需要通過鏡頭(Context)才能向觀眾展示作品。 
    對於TextView,ImageView他們就好比配角或者群眾演員,他們的作用就不是那麼大,隨便就可以找到(new)替代者,同樣,雖然他們不起眼但是要需要在鏡頭下(Context)展示自己。

上面的比喻雖然不是很恰當,但是可以幫助理解!

相關推薦

Android new Activity()

奇思妙想 接觸Android 也有很久了,不知大家有沒有想過Activity可以new嗎?Android由java語言開發,Activity本質也是一個物件,new出來有什麼問題呢?最近一直在想這個問題! 看了一些解釋後才算明白,Android程式

優雅上線 類級別. 程式碼即配置.

1. 利用java的熱替換機制,做到類級別的優雅停機. 兩個類同時存在. 新流量到新類.確保老類的老流量沒有後,再刪除.2. 然後利用流量儲存和重放進行對應程式碼的測試. 原始碼的流量有哪些.這些流量重放,哪怕新程式碼把老程式碼都刪除了. 1. 線上只記錄出口和入口資料.  

好書短評:15位計算機天才及其重大發現》

“看看國外讀者的評價,找到你需要的書。”在你決定購買本書之前,本欄目將努力向讀者朋友們呈現公正客觀的評價。 如果你發現這是本好書,請不要忘記收藏。 編輯書評 在過去的50年中,電腦科學的重大發明都是來自一些並不家喻戶曉的名字。《奇思妙想》這本書描述了15位名不見經傳的電腦科學家的生活和發現,他們的程式

[]無人機

一段時間 時間 github 哪些 pad 人在 配件 forum front 周末在公園玩,第一次看到有人在玩無人機。 當時,初步估算了一下價格。由於使用了類似ipad的操控屏幕,按照5000元估算,螺旋槳、機翼、發動機等部分按照5000元估算,充電器、外出旅行箱、拉桿小

科學家的:飼養分子奶牛

led tracking 集中 weight nan -m nano font 聯想 ???????? 請看下圖: ?????????? 這是科學家的奇思妙想:

「vijos」lxhgww的(長鏈剖分)

題目 lxhgww在樹上玩耍時,LZX2019走了過來。lxhgww突然問道:“我現在的k級祖先是誰?”LZX2019答道:“不是我嗎?”。接著lxhgww就用教主之力讓LZX2019消失了,現在他轉過頭準備向你求助。   長鏈剖分的板子(又是亂搞優化暴力) 對於每一個點,我們定義它深度最深

【Python】關於Python的

1.在學列表的時候,發現python有個很強大的東西,叫列表推導式! 比如說直接在列表裡定義表示式,然後輸出想要的特徵列表: 然後,我還發現,python可以用來求矩陣的乘法 #vec1 = [[2,3,4],[4,5,6]] #vec2 = [[

:15位計算機天才及其重大發現》【PDF】

內容簡介本書介紹了15位當代最偉大的電腦科學家,通過第一手的訪談資料描述了他們的生平及貢獻。他們都是第一流的創新大師,其中有8位是圖靈獎得主。如果沒有他們的貢獻,現代計算機很難像今天這樣深入平常百姓家。在本書中,他們解釋了自己對科學產生興趣的緣由,回顧了成長環境和其他科學家對

Newcoder 83 C.吉姆的(貪心)

Description 給你兩個正整數M,nM, nM,n, 以及兩個長度為nnn個正整數序列deg1,deg2,...,degndeg_1,deg_2,..., deg_ndeg1​,deg2​,..

記錄生活中的

         或在睡覺,或在騎車,或在發呆,有時候總會有一些奇怪的想法,常常沒有把它記錄下來,時間一長也就忘了,暫且在此處開一個日誌,記錄這些“什麼鬼”。          好吧,現在開始!          1、光速表 簡稱 光表          事件:騎車   

【Vijos】lxhgww的

d3d getc ostream iostream urn cst == query graph 【Vijos】lxhgww的奇思妙想 題面 Vijos 題解 戳這裏 (在求$k$級祖先那裏) 代碼 #include <iostream> #i

2019.01.06 vijos lxhgww的(長鏈剖分)

傳送門 長鏈剖分模板題。 題意簡述:允許 O ( n

CSS

轉載自:http://sbco.cc/magicCss/html/index.html .heartShaped { position: absolute; top:50%; left: 50%; transform:translate(-50%,-50%) rota

牛客網練習賽15__吉姆的

題目描述 吉姆是個熱愛演算法競賽的小朋友,平常的休閒活動就是刷 牛客網 的題目。當吉姆刷到 wannafly挑戰賽12 F.小H和聖誕樹  這題時,頗為震驚,因為這是他第一次在wannafly挑戰賽上看到作者提供的解答的時間複雜度的式子裡含有根號的題目,於是吉姆就開始在網路上

App競品技術分析 (7)逼出來的

1 一切皆可配置1.1 使用XML配置首頁,防止因載入不到資料而沒有入口  在很多電商類App中,我們會看到有一個配置檔案或者JSON檔案,裡面存放著首頁展示所需要的所有資料,包括圖片、文字等等,點選後能進入各個品類這些二級頁面,如圖9-15所示,我們可以看到,這個首頁由3個

】,如何給閘道器設計一款專屬的許可權控制【責任鏈設計模式】

什麼是責任鏈模式 客戶端發出一個請求,鏈上的物件都有機會來處理這一請求,而客戶端不需要知道誰是具體的處理物件。這樣就實現了請求者

-java實現另類的pipeline模式

--- # 磕叨 在公司做專案是見到前輩們寫的一段任務鏈的程式碼,大概如下 ``` Runnable task = new TaskA(new TaskB(new TaskC(new taskD()))); task.run(); ``` taskA執行run呼叫並完成TaskA宣告的任務邏輯之後,內

CSS 邊框動畫

今天逛部落格網站 -- shoptalkshow,看到這樣一個介面,非常有意思: 覺得它的風格很獨特,尤其是其中一些邊框。 嘿嘿,所以來一篇邊框特輯,看看運用 CSS,可以在邊框上整些什麼花樣。   border 屬性 談到邊框,首先會想到 border,我們最常用的莫過於 

CSS -- 使用 CSS 創造藝術

本文屬於 CSS 繪圖技巧其中一篇。之前有過一篇:在 CSS 中使用三角函式繪製曲線圖形及展示動畫 想寫一篇關於 CSS 創造藝術的文章已久,本文主要介紹如何藉助 CSS-doodle ,利用 CSS 快速創造美妙的 CSS 圖形。   中心佈局 本文的所有技巧都會圍繞這個佈局展

CSS -- 使用 background 創造各種美妙的背景

本文屬於 CSS 繪圖技巧其中一篇,系列文章: + [在 CSS 中使用三角函式繪製曲線圖形及展示動畫](https://github.com/chokcoco/iCSS/issues/72) + [CSS奇思妙想 -- 使用 CSS 創造藝術](https://github.com/chokcoco/iC