接觸android已經有一段時間了,一直以為android程式的入口是設定檔中指定的Activity,最近看一個開源項目,發現裡面實現了android 的Application類,才知道,android程式的真正入口是Application類的onCreate方法。只不過大多數開發人員無需重寫該類,它的繼承關係如:java.lang.Object ↳ android.content.Context ↳ android.content.ContextWrapper ↳ android.app.Applicationandroid.app.Application類包含了4個公開的方法 void onConfigurationChanged(Configuration newConfig) void onCreate() //這裡才是真正的進入點。 void onLowMemory() void onTerminate() 下面是測試代碼: 使用application需要兩個步驟:1.複寫Application類,2.在設定檔中配置 範例程式碼如下: MyApp類:
package app.app; import android.app.Application; import android.content.res.Configuration; public class MyApp extends Application { @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); } @Override public void onCreate() { super.onCreate(); System.out.println("MyApp is called"); } @Override public void onLowMemory() { super.onLowMemory(); } @Override public void onTerminate() { super.onTerminate(); } } 設定檔: <application android:icon="@drawable/icon" android:label="@string/app_name"android:name="app.app.MyApp" > ...... </application>
Activity類: public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); System.out.println("MainActivity is called"); } 結果:MyApp is called MainActivity is called 注釋1:在Android中,Application只是一個鬆散的表徵概念,沒有多少實質上的表徵[和J2me的Midlet有明顯區別]。Application類,代表應用程式上下文狀態,是一個極度弱化的概念。Application只是一個空間範疇的概念,Application就是Activity,Service之類的組件上下文描述。Application並不是Android的核心概念,而Activity才是Android的核心概念 注釋2:MyApplication類的作用是為了放一些全域的和一些上下文都要用到變數和方法。 原文:Android程式的真正入口Application http://www.pocketcn.com/forum-viewthread-tid-1565-fromuid-1477.html |