是否需要在清单文件中使用点('.')启动活动名称.例如,活动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 次 |
最近记录: |