从代码开始活动

时间:2011-04-06 17:43:36

标签: android

我有一个包名和一个活动名,我想用它开始一个新的类或活动。是否可以从代码启动活动而不在清单文件中声明相同的活动?

2 个答案:

答案 0 :(得分:1)

如果未在Manifest中声明活动,则无法启动活动。您所做的只是改变视图,而不是活动。

答案 1 :(得分:0)

不,你不能这样做(see the 2nd paragraph of the Activity 'Class Overview')。然而...

  1. 如果您想这样做是为了防止人们直接启动子活动,您可以使用逻辑来检测启动活动(通过Activity.getCallingActivity / Activity.getCallingPackage) - 您需要使用StartActivityForResult来执行此操作

  2. 您可以通过ClassLoader实现您想要的目标 - 有关您正在做什么(及其原因)的更多详细信息。

  3. 如果您尝试启动在其他包中定义的活动,则只需要在其他包的清单中声明它 - 然后您可以使用Intent.setClassName

    <指定它/ LI>

    希望这有帮助,

    Phil Lello