zoukankan      html  css  js  c++  java
  • AndroidManifest.xml里加入不同package的component (Activity、Service里android:name里指定的值一般为句号加类名),可以通过指定完全类名(包名+类名)来解决

    我们都知道对于多个Activity如果在同一个包中,在Mainfest中可以这样注册

    Xml代码  收藏代码
    1. <span style="font-size: small;"><?xml version="1.0" encoding="utf-8"?>  
    2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
    3.       package="com.trinea.sns.activity"  
    4.       android:versionCode="1"  
    5.       android:versionName="1.0">  
    6.     <uses-sdk android:minSdkVersion="3" />  
    7.     <uses-permission android:name="android.permission.INTERNET" />  
    8.       
    9.     <application android:icon="@drawable/icon" android:label="@string/app_name">  
    10.         <activity android:name=".UpdateStatusActivity"  
    11.                   android:label="@string/app_name">  
    12.             <intent-filter>  
    13.                 <action android:name="android.intent.action.MAIN" />  
    14.                 <category android:name="android.intent.category.LAUNCHER" />  
    15.             </intent-filter>  
    16.         </activity>  
    17.   
    18.     <activity android:name=".ViewSnsActivity"  
    19.                   android:label="@string/app_name">  
    20.         </activity>  
    21.     </application>  
    22. </manifest></span>  

     上面的UpdateStatusActivity和ViewSnsActivity同样在包com.trinea.sns.activity下面可以如此定义,但如果

    UpdateStatusActivity在包com.trinea.sns.activity下,而ViewSnsActivity在包com.trinea.sns.activity2下面怎么办呢

    每一个Activity、Service等应用程序组件都会对应AndroidManifest.xml文件中的一个<activity>、<service>标签。在这些标签中有一个必选的属性:android:name,该属性需要指定一个类名,像上面的.UpdateStatusActivity和android.intent.action.MAIN。大家发现这两个有什么不同了吗,对了。第一个是.的方式而第二个是全路径的方式。指定android:name属性值有3种方式,如下:

    1.  指定完全的类名(packagename+classname),例如,net.blogjava.mobile.Main。

    2.  只指定类名,例如,.Main,其中Main前面的“.”是可选的。该类所在的包名需要在<manifest>标签的package属性中指定。

    3.  指定相对类名,这种方式类似于第2种方式,只是在<activity>标签的android:name属性中不光指定类名,还有部分包名。例如,如果Main类在net.blogjava.mobile.abcd包中,就可以在<manifest>标签的package属性中指定net.blogjava.mobile,然后在<activity>标签的android:name属性中指定.abcd.Main

       由此可见,package的目的是为了更方便地指定android:name以及其他相关属性的值,就是一个默认的包。如果不在android:name中指定包名,会自动将package属性值加在前面

    参考:http://developer.android.com/guide/topics/manifest/activity-element.html#nm

  • 相关阅读:
    iOS之内存管理(ARC)
    分布式锁1 Java常用技术方案
    谈谈如何使用Netty开发实现高性能的RPC服务器
    前后端分离开发模式下后端质量的保证 —— 单元测试
    jquery实现"跳到底部","回到顶部"效果
    html内容超出了div的宽度如何换行让内容自动换行
    采用easyui+ajax+htm+ashx编写 通过用户对应角色 角色对应菜单 控制用户的访问权限
    javascript [] 与 {} 的区别
    图说设计模式
    T4教程1 T4模版引擎之基础入门
  • 原文地址:https://www.cnblogs.com/cascle/p/7118388.html
Copyright © 2011-2022 走看看