在ANDROID中打开一个activity而不在manifest文件中声明它?

问题描述 投票:0回答:3

我想打开一个 Activity 而不在清单文件中声明它。
不知道可不可以。
我真正想要的是使用意图从我的程序中动态打开一个活动。 如果可能的话,任何人都可以帮助我吗?

android android-activity
3个回答
4
投票

不可能。虽然我不确定你的意思是“动态打开活动”。

参见:http://developer.android.com/reference/android/app/Activity.html

在类概述下,它指出“要与 Context.startActivity() 一起使用,所有活动类必须在其包的 AndroidManifest.xml 中具有相应的声明”

您可以在包中包含一个 Activity,但不在清单中定义它,但是您将无法成功启动它。


1
投票

您的“动态”活动开始实际上是开始活动的正常方式(正如您在对 Matt M 的答案的评论中所说)。尽管您必须按照Matt M所说在清单中添加活动。在列表视图中,单击一个活动将调用一个函数,该函数将通过 startActivity() 函数启动相应的活动。


-1
投票

我尝试了很长时间,但由于 Instrumentation 类使用 IActivityTaskManager,它是位于 com.android.server.wm 的内部 API 的类,不在 Activity 类加载器中,所以我通过另一种方法解决了这个问题:

使用子类

我刚刚做了一个要点,带有示例代码。

胃肠道

© www.soinside.com 2019 - 2024. All rights reserved.