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