安卓 Context 和 Application的關係

來源:互聯網
上載者:User

標籤:

1. 我開始一直不理解顯式Intent中傳一個this(當前的activity)是為什麼。因為Intent裡面的構造方法對應的只有 Context, Class。後面查資料才發現

  

Intent i = new Intent(this, AnotherAty.class);  // 在activity裡面調用。
public Intent(Context packageContext, Class<?> cls) {        mComponent = new ComponentName(packageContext, cls);    }

 

    是因為 activity都繼承了 android.content.Context。下面是官方的解釋。

  關於應用程式環境的全域資訊的介面。這是一個抽象類別,它的實現是由安卓系統提供的。它允許訪問應用程式特定的資源和類,以及應用級的操作,如啟動活動,電話,廣播和接收的意圖,等等。

  其實說白了就是上下文,可以擷取全域資源。(剛剛學到這裡,其他的方法可以取查手冊)

this.getResources().getString("app_name");  // activity調用可以擷取到全域的 app_name 定義的值

 

2. android.app.Application 類

   需要維護全域應用程式狀態的基類。你可以通過在你的AndroidManifest.xml指定其名稱提供自己的實現。XML <application>標籤,這將導致這類被執行個體化時為您為您的應用程式/包建立過程。

   例如你定義了一個全域類, App繼承了Application , 那麼你要到  XML <application>標籤 中設定 android:name=".App" 

 這樣你的所有的activity都可以共用這個App類了。 其實每個activity也是繼承了這個Application類。 同時Application類也繼承了 Context類

App app = (App)this.getApplicationContext();  // 在activity中調用  裡面肯定有 getResources()方法

 

 

ps: 剛剛學習,記錄一點。 以後有更好的心得在更新

安卓 Context 和 Application的關係

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.