Android在桌面添加两个快捷方式,如何区分从哪个入口进去的?

我们可能会遇到如下的需求:
应用的首页由多个标签页组成,每个标签页是一个fragment,需要你在桌面生成多个快捷方式,分别进入到不同的标签,例如: 拨号通话记录

生成多入口方式如下:

        <activity android:name=".MainActivity" android:launchMode="singleInstance">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity-alias android:name=".AliasActivity" android:targetActivity=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity-alias>

所以现在的问题是怎么区分从AliasActivity还是从MainActivity进到MainActivity的?

方法如下:

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if (getIntent().getComponent().getClassName().contains("AliasActivity")) {
           // from AliasActivity
        } else {
           // from  MainActivity
        }
}

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        if (intent.getComponent().getClassName().contains("AliasActivity")) {
            // from AliasActivity
        } else {
            // from  MainActivity
        }
    }

对根据组件的ClassName来区分
目前试过网上说的其他方法都不起作用(测试方法:HOME键退出,从另外一个路口进入,确认结果)

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值