activity-alias的使用

activity-alias是android里为了重复使用Activity而设计的。

当在Activity的onCreate()方法里,执行getIntent().getComponent().getClassName();得到的可能不是这个Activity的名字,有可能是别名的名字,例如:在AndroidMenifest.xml有如下配置:

   <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.broadcastdemo.TestMainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity-alias   //activity-alias配置
            android:name="com.example.broadcastdemo.TestMainActivityAlias"
            android:targetActivity="TestMainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.DEFAULT" />  

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>
        ...
   </application>

运行这个应用demo时,这个应用会在桌面上创建两个快捷图标,点击这两个图标都能进入到TestMainActivity应用。
这时getIntent().getComponent().getClassName() 得到的名字就不一样,一个是com.example.broadcastdemo.TestMainActivity,一个是com.example.broadcastdemo.TestMainActivityAlias。

TestMainActivity.java

...
 //onCreate()方法里面写getIntent().getComponent().getClassName()
   protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String name = getIntent().getComponent().getClassName();
        Log.d("TestMainActivity", "name : " + name);
        ...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值