我在求職面試中遇到了一個問題,那就是我是否可以在不發佈新版本應用程序的情況下動態地向Android應用程序添加新活動。他告訴我,我們可以動態地將活動更改爲新的機制,而無需在AndroidManifest.xml文件中註冊。我搜查了一些文件,但沒有找到可能的方法來做到這一點。未在androidmanifest.xml中註冊的android活動性
我可以在沒有註冊AndroidManifest.xml文件的情況下啓動一個Activity嗎?是否有可能動態修改現有的活動?
我在求職面試中遇到了一個問題,那就是我是否可以在不發佈新版本應用程序的情況下動態地向Android應用程序添加新活動。他告訴我,我們可以動態地將活動更改爲新的機制,而無需在AndroidManifest.xml文件中註冊。我搜查了一些文件,但沒有找到可能的方法來做到這一點。未在androidmanifest.xml中註冊的android活動性
我可以在沒有註冊AndroidManifest.xml文件的情況下啓動一個Activity嗎?是否有可能動態修改現有的活動?
Can I start an Activity without registering in the AndroidManifest.xml file?
我不認爲你可以啓動一個尚未在AndroidManifest.xml文件中註冊的活動編號。清單文件會跟蹤應用程序在編譯/構建應用程序時可以使用的活動。任何嘗試打開未註冊的活動都會導致應用程序崩潰。
And is it possible to dynamically modify the existing Activity?
正如貝蒂·迪瓦恩說,你可以根據某個用戶操作(如按下按鈕)調用setContentView(R.layout.new_layout);
改變現有活動的佈局。但是,在您的活動中不止一次致電setContentView
是一種不好的做法,人們通常會避免這種做法。不建議使用它,因爲您必須編寫代碼來管理第二個佈局的用戶交互。想象一下,在一個java文件中寫入兩個活動代碼。當你可以單獨寫入代碼時,這會導致不必要的代碼混亂。
是的,可以動態修改現有的。 這裏的修改並不意味着你正在改變一個活動的名字,但意味着你正在改變內容。
只需調用setContentView方法來爲活動提供新的佈局,現在您的整個活動將託管不同的內容。
setContentView(R.layout.new_layout);
對於'動態改變活動',我相信他的意思是片段。您可以選擇在整個應用程序中只有一個活動,只要切換其包含的片段即可。如果情況如此,你的受訪者可能無法區分片段和活動,或者他正在測試你。 –