我已經寫了一些Android應用,並一直宣稱起始Activity
爲:Android應用程序VS活動
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
這將是偉大的作用域一些全局方法,靜態,共享的首選項,等等,如果我可以使用Application
啓動我的應用程序,然後在設置首選項等後調用onCreate()
中的第一個Activity
,但我一直無法找到此設計模式的任何示例......當我在代碼中嘗試此操作時, a ClassCastException
:
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// do stuff (prefs, etc)
// start the initial Activity
Intent i = new Intent(this, InitialActivity.class);
startActivity(i);
}
}
InitialActivity.class
確實是一個Activity
,如果我將它設置爲MAIN
,但是嘗試從MyApplication
開始,它會聲明MAIN
生成錯誤,該工作正常。可能是一個非常愚蠢的問題,但我解決這一切都是錯誤的?
感謝,
保羅
你的意思是你將MyApplication定義爲Activity?這確實會導致ClassCastException。 令人高興的是,如果我正確理解你想要做什麼,Android已經爲你做了你想做的事情。您只需將您的應用程序的名稱設置爲該MyApplication的路徑和名稱即可。它將在您的活動開始之前創建,並將供所有人使用。像這樣:
有趣 - 我將如何從其中一個活動訪問應用程序的自定義方法? –
從你的Activity中你可以得到一個對應用程序的句柄:getApplicationContext(),如果它在你的清單中被配置成如上所示的結果,將會轉換爲MyApplication。 –