3

我在一次求职面试中遇到了一个问题,即我是否可以在不发布新版本的应用程序的情况下向 Android 应用程序动态添加新活动。他告诉我,存在某种机制,我们可以动态地将 Activity 更改为新的,而无需在 AndroidManifest.xml 文件中注册。我搜索了一些文档,但没有找到可行的方法。

我可以在不注册 AndroidManifest.xml 文件的情况下启动 Activity 吗?是否可以动态修改现有的Activity?

4

2 回答 2

1

是的,可以动态修改现有的。这里的修改并不意味着你在改变一个活动的名称,而是意味着你在改变内容。

只需调用活动的 setContentView 方法为活动提供新的布局,您现在的整个活动将托管不同的内容。

setContentView(R.layout.new_layout);
于 2013-10-20T04:47:34.103 回答
1

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);正如 Bette Devine 所说,您可以通过基于某些用户操作(如按下按钮)的调用来更改现有活动的布局。setContentView但是,在您的活动中多次调用是一种不好的做法,人们通常会避免这样做。不建议这样做,因为您必须编写代码来管理第二个布局的用户交互。想象一下在一个 java 文件中编写两个活动代码。当您可以单独编写它们时,这将导致不必要的代码混乱。

于 2013-10-20T05:30:50.990 回答