標籤:
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的關係