0

在这里Intent 类的 android 源代码中,我注意到有两个私有字段,即private String mPackageprivate ComponentName mComponent。不过这里ComponentName已经有了自己的领域。为什么我们在 Intent 类中有这种冗余?还是两个同名的字段实际上不同?private String mPackage mPackage

4

1 回答 1

0

这两个包名称在技术上是不同的。

在 Eclipse 或 Android Studio 中创建一个新的 Android 项目时,新项目向导使它看起来只有一个包名,但实际上,它会使用您给它的包名并从中生成两个相同的包名,一个应用程序的包名称和类的一个包。

也就是说,com.example.myapplication在新建项目向导中输入包名,生成的类将位于/com/example/myapplication/com/example/myapplication/MainActivity.class

(知道这将使您更容易将其称为来自不同应用程序的显式意图)

当然,没有什么说您不能更改类包名称或添加新的类包名称,同时保持原始应用程序包名称与原始应用程序包名称相同,因此您最终可能会得到这样的位置例如:

/com/example/myapplication/com/newcompanyname/newconcept/MainActivity.class

于 2013-07-08T10:47:00.657 回答