一个Activity多个入口图标的实现方法

今天公司给了一个需求,只有一个activity,如何在launcher上显示多个图标,并且点金不同的图标进入不同的fragment

在配置文件中如下添加即可

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.zhouyuchen.myapplication">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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


            </intent-filter>
        </activity>
        <activity-alias
            android:name="Second"
            android:icon="@mipmap/ic_launcher"
            android:targetActivity=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

            </intent-filter>
        </activity-alias>
        <activity-alias
            android:name="Three"
            android:icon="@drawable/aaa"
            android:targetActivity=".MainActivity"
            android:label="第三個">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

            </intent-filter>
        </activity-alias>

    </application>

</manifest>




如何在代码中进行获取呢

按以下代码操作即可

String MyName = getIntent().getComponent().getClassName();
String First = "com.example.zhouyuchen.myapplication.MainActivity";







下午的时候遇到了新问题  因为只有一个activity,所以导致按home键回到主界面的时候,activity没有被销毁,所以无法再次在执行oncreate()里的方法,点击另外的图标进入的还是原来的fragment。

解决办法为

因为只有一个activity,所以在配置文件中添加

android:launchMode="singleTask"
在java文件中添加onnewintent方法即可

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    Log.i("new", "newIntent");
    setIntent(intent);
    String s = getIntent().getComponent().getClassName();
    if (s.equals(PACKAGE_NAME1)) {
        Log.i("aaa", "success");
        textView1.setText("oneeee");
    }
    if (s.equals(PACKAGE_NAME2)) {
        textView2.setText("twoooooooo");
    }
    if (s.equals(PACKAGE_NAME3)) {
        textView3.setText("threeeeeeeeee");
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值