另一个程序中的Activity要能够被启动,首先这个Activity在manifest的声明中必须具有<intent-filter>属性。否则将不能被启动。
我们必须知道:Android程序中Context分成两种。一种是Activity Context,另一种是Application Context。通过Activity Context来启动另一个程序代码是很简单。代码如下。
Intent i = new Intent();
i.setClassName("packagename", "classname");
startActivity(i);
但是如果通过Application Context来启动Activity的话。就需要FLAG_ACTIVITY_NEW_TASK属性,不管这个Activity是属于其他程序还是自己这个程序的。
Intent i = new Intent();
i.setClassName("packagename", "classname");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//必须添加
getApplicationContext().startActivity(i);
这样的话会把启动的程序放到一个新的TASK中。
本文详细介绍了如何使用不同的上下文在Android应用中启动Activity。通过ActivityContext启动Activity相对直接,而通过ApplicationContext启动则需要添加特定的FLAG_ACTIVITY_NEW_TASK标志。

1829

被折叠的 条评论
为什么被折叠?



