1

我试图理解为什么我们将Context实例传递给Intent构造函数?为什么做的还不够new Intent(SomeActivity.class)?Android是否强制执行一些限制或什么?

我试图查看代码,但我发现它得到了包名称。

意向文档

4

2 回答 2

3

要明确识别 Android 应用程序中的 Activity,您需要同时拥有应用程序的名称(也称为 Android 应用程序包)和活动的全名(java 包名 + 活动类的类名)。这些正是您在构造函数中提供的两个参数。上下文用于获取Android应用程序包名,类用于获取完整的类名。

一个全名相同的Activity可以在两个应用中使用。如果你不提供 Context,那么 Android 将不知道一个 Activity 属于哪个应用程序。

于 2013-10-26T21:07:15.017 回答
1

如您所料,Context构造函数中的 用于获取应用程序的包名。

从类中推断包名SomeActivity.class.getPackage().getName()并非在所有情况下都有效,因为它可能与应用程序的包名不同。

于 2013-10-26T20:32:58.480 回答