我想創建一個活動,但不必在清單文件中聲明它。這可能嗎?我見過的每個地方似乎都必須在清單中聲明每個活動,但我注意到某些活動(如內置的ChooserActivity)未在我的清單文件中聲明。我是否需要聲明清單文件中的每個活動?
回答
簡答:是的,您的應用程序中的每個活動都必須在清單中聲明。由於在Android文檔中描述,清單的目的(除其他事項外)是:
它描述了應用程序的組件 - 該 應用由廣播接收器的活動,服務和內容提供商的。它命名實現組件的每個 的類併發布它們的功能(例如,它們可以處理哪些Intent消息)。這些聲明使Android 系統知道是什麼成分,並在他們可以 推出什麼樣的條件。)
http://developer.android.com/guide/topics/manifest/manifest-intro.html#ifs
因此,在您的應用程序任何活動類必須在你的清單中定義。 Intents,Services等也是如此,即使這些組件不能從您的應用程序之外訪問。
至於ChooserActivity和您沒有在代碼中定義的任何其他Activity,他們將在另一個Manifest中擁有自己的定義。如果出於任何原因您決定在您的應用程序之外劃分現有的Activity,那麼您將不得不在您的Manifest中定義它。
從設計角度來說,從新人到Android,這絕對沒有意義!你不能定義不在清單中的活動,也不能有你的代碼中沒有的清單條目,那爲什麼編譯器不能爲你處理呢?將清單保留爲默認配置的異常,並讓編譯器「填寫」其餘部分!爲什麼讓我們做到這一點? ......除非我的理解錯誤,而我錯過了一些東西,在這種情況下,請分享一下,這樣我就可以學習,因爲現在的方式,它看起來像是乏味和不必要的文書工作! – MarqueIV
請注意,我顯然指的是我*在應用中定義的活動*,而不是可用於我的應用的活動(即系統提供的活動等)。)如果你已經定義了這個類,你有責任將它添加到清單中,並且清單僅用於你定義的那些活動,而不是外部的那些活動,爲什麼不能由編譯器推斷那些哪些不需要顯式配置?哎呀,添加一個'ImplicitActivity'來定義那些沒有指定的默認值。 – MarqueIV
您的論點可能有一些優點。然而,考慮到1)他們有一個現有的工具鏈和操作系統版本來支持2)您的項目或庫中可能存在活動/服務/廣播接收器/等,您不希望應用程序啓動/使用(例如基本Activity或AppCompatActivity)3)我不確定這些組件的默認配置是多麼有用,因爲每個組件通常都是自定義的,無論是標題,圖標,意圖過濾器,主題,啓動模式,元數據等。4)可能還有其他論點或限制 – TheIT
我想創建一個Activity但不必在manifest文件中聲明它。這可能嗎?
不,對不起。
我注意到有些活動,如內置ChooserActivity,在我的清單文件中未聲明
這項活動是不是你的應用程序的一部分。它是核心操作系統的一部分。
- 1. 聲明庫活動清單
- 2. 未在Android清單中聲明活動
- 3. 我是否需要明確地完成Android中的活動?
- 4. 我們是否需要EXPORT_SYMBOL和頭文件聲明
- 5. 不要在清單中聲明主/發射器活動
- 6. 我們是否需要有關清單中活動類的額外信息?
- 7. 在ANDROID的清單文件中打開一個沒有聲明它的活動?
- 8. 我們是否需要每個源目錄中的sconscript文件
- 9. 如何在Android清單文件中聲明兩個包含其活動的包?
- 10. 聲明Android清單中的多個活動
- 11. 是否需要在頭文件中聲明所有C函數
- 12. 當需要時,是否需要手動將每個* .m文件添加到我的單元測試目標中?
- 13. 帶聲明的Python - 是否需要更舊的文件處理?
- 14. 我是否需要手動聲明> =和<=運算符?
- 15. 有效的XML文件是否需要XML聲明?
- 16. 如何在Android清單中聲明2個搜索活動
- 17. 我是否需要顯式聲明所有組件屬性(vue.js)?
- 18. 我們是否需要ActiveRecord模型中的class_name和foreign_key聲明
- 19. 我是否需要聲明一個可繪製變量?
- 20. 我是否需要清理用於聲明幾何形狀的字符串?
- 21. 即使在清單文件中聲明活動也不會啓動
- 22. 庫清單中是否需要versionCode/versionName?
- 23. 我是否需要爲每個遊戲級別創建一個新的活動?
- 24. AWK:這些聲明是否需要?
- 25. 鎖是否需要聲明爲全局?
- 26. 是否需要聲明steam openid auth?
- 27. 是否需要聲明class atributtes?
- 28. 是否需要角ngRoute'Controller'聲明?
- 29. 活動是否需要Android中的Handler?
- 30. C# - 我需要清單文件嗎?
ChooserActivity在另一個清單文件中聲明並公開給您的應用程序。你的目標是不把它放在清單上,這可能會幫助我回答你的問題。 – sgarman
Xamarin.Android通過使用屬性自動執行它(就像Java中的註釋一樣)。也許人們可以創建一個能夠在Java中執行此操作的工具。 –