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

来源:互联网 发布:js 正则表达式 编辑:程序博客网 时间:2024/05/17 07:08

我们可能会遇到如下的需求:
应用的首页由多个标签页组成,每个标签页是一个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键退出,从另外一个路口进入,确认结果)

0 0