我有一个包名和一个活动名,我想用它开始一个新的类或活动。是否可以从代码启动活动而不在清单文件中声明相同的活动?
答案 0 :(得分:1)
如果未在Manifest中声明活动,则无法启动活动。您所做的只是改变视图,而不是活动。
答案 1 :(得分:0)
不,你不能这样做(see the 2nd paragraph of the Activity 'Class Overview')。然而...
如果您想这样做是为了防止人们直接启动子活动,您可以使用逻辑来检测启动活动(通过Activity.getCallingActivity / Activity.getCallingPackage) - 您需要使用StartActivityForResult来执行此操作
您可以通过ClassLoader实现您想要的目标 - 有关您正在做什么(及其原因)的更多详细信息。
如果您尝试启动在其他包中定义的活动,则只需要在其他包的清单中声明它 - 然后您可以使用Intent.setClassName
<指定它/ LI> 醇>希望这有帮助,
Phil Lello