我在一次求职面试中遇到了一个问题,即我是否可以在不发布应用程序新版本的情况下动态地向 Android 应用程序添加新 Activity 。他告诉我存在某种机制,我们可以动态地将 Activity 更改为新 Activity,而无需在 AndroidManifest.xml 文件中注册。我搜索了一些文件,但没有找到可行的方法。
我可以在不在 AndroidManifest.xml 文件中注册的情况下启动 Activity 吗?是否可以动态修改现有的Activity?
最佳答案
我可以在不在 AndroidManifest.xml 文件中注册的情况下启动 Activity 吗?
没有。我认为您不能启动未在 AndroidManifest.xml 文件中注册的 Activity 。 list 文件跟踪应用程序在编译/构建应用程序时可以使用的 Activity 。任何尝试打开未注册的 Activity 都将导致应用程序崩溃。
是否可以动态修改现有的 Activity?
正如 Bette Devine 所说,您可以根据某些用户操作(如按下按钮)调用 setContentView(R.layout.new_layout);
来更改现有 Activity 的布局。但是,在您的 Activity 中多次调用 setContentView
是人们通常避免这样做的不良做法。不推荐这样做,因为您必须编写代码来管理第二个布局的用户交互。想象一下,在一个 java 文件中编写两个 Activity 代码。当您可以单独编写它们时,这将导致不必要的代码困惑。
关于无需在 androidmanifest.xml 中注册的 android Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19473959/