是否需要在清单文件中使用点('.')启动活动名称.例如,活动ContactManager以'.'开头.
<activity android:name=".ContactManager" android:label="@string/app_name">
Run Code Online (Sandbox Code Playgroud)
活动的地方ContactAdder没有点
<activity android:name="ContactAdder" android:label="@string/addContactTitle">
Run Code Online (Sandbox Code Playgroud)
在ContactManager示例的清单文件中http://developer.android.com/resources/samples/ContactManager/AndroidManifest.html
更新:如果活动名称以.开头.它被附加到包名称以成为完全限定名称,但如果它不以'.'开头会发生什么.
Ces*_*arB 36
我也很好奇,并在Android源代码中寻找它.
我platform/frameworks/base在tools/aapt/Resource.cpp文件库中找到了似乎是存储库中的相关代码.相关功能fullyQualifyClassName称为massageManifest.
它应用的规则在fullyQualifyClassName函数的注释块中解释:
// asdf --> package.asdf
// .asdf .a.b --> package.asdf package.a.b
// asdf.adsf --> asdf.asdf
Run Code Online (Sandbox Code Playgroud)
解释这条规则,我们有:
所以,回答你的问题:只要在其他任何地方都没有点,两种写活动名称的方式应该具有相同的效果.
另外,该massageManifest函数显示了应用此规则的位置:
application元素中,在name和backupAgent属性上.activity,service,receiver,provider,和activity-alias元素,在name属性.activity-alias元素中,在targetActivity属性上.jay*_*won 15
实现活动的类的名称,Activity的子类.属性值应该是完全限定的类名(例如,"com.example.project.ExtracurricularActivity").但是,作为简写,如果名称的第一个字符是句点(例如".ExtracurricularActivity"),则它将附加到元素中指定的包名称.没有默认值.必须指定名称.
| 归档时间: |
|
| 查看次数: |
27582 次 |
| 最近记录: |