项目需求:
- 应用多入口配置
- 可以拉起不同的入口
- 拉起和隐藏都能有效
1.应用多入口配置 这里直接在AndroidManifest.xml 里面配置就好
<activity
android:name="com.autochips.jancar.RightCameraPage"
android:excludeFromRecents="true"
android:launchMode="singleInstance"
android:lockTaskMode="always"
android:taskAffinity="com.autochips.jancar.RightCameraPage" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- 右视-->
<activity-alias
android:name="com.jancar.rightview"
android:enabled="false"
android:icon="@android:drawable/presence_video_away"
android:label="@string/app_name_right_video"
android:launchMode="singleInstance"
android:targetActivity="com.autochips.jancar.RightCameraPage">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
<activity-alias
android:name="com.jancar.frontview"
android:enabled="false"
android:icon="@android:drawable/presence_video_away"
android:label="@string/app_name_front_video"
android:targetActivity="com.autochips.jancar.RightCameraPage">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>
注意事项 : 主入口定义的是 android:taskAffinity 其他的同名入口是 android:targetActivity
2. 可以拉起不同的入口
拉起方法 用Component方法
ii.setComponent(new ComponentName("com.autochips.backcarapp", "com.jancar.rightview"));
// ii.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
ii.setAction(ACTION_START_RIGHTVIEW_STOP);
startActivity(ii);
3. 拉起和隐藏都能有效
拉起的时候 点一下就会拉起一个,点一下就会拉起一个 属于拉起多个相同的界面,这点操作很麻烦,隐藏的时候也是直接onpause,之后oncreate方法重新创建一个新的UI界面,导致action也没有完全正常操作
这里做了一个处理 就是在Activity的onPause下直接调用finish(), 这样避免一直拉起相同的界面显示, 一般应用直接用SingleInstance的启动模式就好了,在这里好像不起作用..不知道为什么,可能是哪里还没有做好
以上的效果还是不太理想 ,依旧采用单独的Activity入口方便些,不然同名Activity使用LaunchMode无效也没办法达到想要的效果